Jusper Jusper

По требованию Яндекса, разбили на 2 отдельные странички.
Вторая часть переехала сюда: https://devtribe.ru/p/indie-kitchen/podcast_devgamm_volume_2

Jusper Jusper

Вообще, я делал замер производительности, но вот этот застрявший в мече мужик сделал мой вечер.

Jusper Jusper

Мелочь, но - новая поза персонажа в главном меню. Да, он даже чешет себе задницу.

...
Dreaman Dreaman

IDALGAME,

Действительно оригинально и интересно игра выглядит ;)

Rummy_Games Rummy_Games

Saturated Outer Space #saturdayscreenshot

...
Razz Razz

Мясной шторм в исполнении Юрия Маркова

Stabilitron Stabilitron

Метроидвания в мире славянских сказок. Разбойникам тоже нужно отдыхать.
https://twitter.com/SlavaniaGame/status/1292048996115120128

TheDarkestRed TheDarkestRed

Заброшенный город - концепт арт The Darkest Red 🎮 🕸 🏚
https://vk.com/the_darkestred

IDALGAME IDALGAME

Геймплей беты и создания кофейных пятен.

Следите за разработкой игры: https://vk.com/pt_game

...
Jusper Jusper

У издателей инди-проектов как раз берут либо готовую команду, либо соло-разработчика. Потому что там чем больше хард-скиллов у тебя есть, тем лучше. Я не умею в арт, я не умею в толковый оптимальный код...

Jusper Jusper

GenElCon,

HypeTrain издают в основном инди-разрабочиков, а мне там особо делать нечего, потому что я на данном этапе не инди (точнее инди-мобильник).

GenElCon GenElCon

Ну вот, например, если бы ты в какую-нибудь игру вписаться типо тех, что выходят из под издательского крыла TinyBuild или HypeTrain Digital (такие типичные небольшие крепкие и не очень ПК проекты), как думаешь...

GenElCon GenElCon

Jusper,

А ты пробовал в такие подобные места идти: это были прям гиганты или не только? Просто если это что-то акромя этих гигантов, например, какая-нибудь студия делающая крпепкие не ААА, например Endless Space...

alexprey alexprey

GenElCon, ну это почти тоже самое, что сказать, что я сверх спец по юнити, т.к. C# знаю уже 9 лет, но опыт веб разработки на нем не тоже самое, что скрипты под юньку писать. Тоже самое и с мобилками, там немного другие задачи решаются...

...
Jusper Jusper

GenElCon, в большинстве мест крупных типа Blizzard прямо написано: опыт разработки игры AAA PC проекта, поэтому мобилка там нерелевантна, меня несколько раз развернули.

По личным ощущениям приходится делать конкретное усилие...

GenElCon GenElCon

Jusper,

Хм, а были конкретные кейсы? Ты просто не первый знакомый, кто про это говорит. Любопытно..

Jusper Jusper

Xakkar, lol

Логотип проекта Программирование

Реализация нескольких интерфейсов с общим родителем

Припустим, у меня есть интерфейс с методом A. Я создаю два дочерних к нему интерфейса, один имеет метод B, второй - метод C. После чего создаю класс, реализующий оба дочерних интерфейса, и объявляю там методы A, B и C. Не возникнет ли проблем с реализацией метода А? Чаще всего насчет ситуаций с одинаковыми именами методов в интерфейсах предлагают отдельную реализацию. Мне, к примеру, нужно, чтобы там выполнялось только одно действие. Или стоит вынести метод A в отдельный интерфейс?

Ответ

lentinant:

реализован в классе.

Скользкое понятие.
В любом случае, даже если дочерний интерфейс переобъявит метод A() вот так:
interface iB
{ new void A(); void B(); }
и твой класс Class_Example реализует его, у тебя будут выполнятся одни и те же действия

  1. И в случае iB b = new Class_Example(); b.A()
  2. И в случае iA a = new Class_Example(); a.A();
  3. И в случае Class_Example class_name = new Class_Example(); class_name.A().

В случае, когда интерфейс не переобъявляет метод A() даже говорить не приходиться - тем более будут те же действия.

Вообще здесь такая штука, по моему мнению конкретно в этом случае надо разбираться по факту проблемы, а не по возможной проблеме.
P.S.
Насчет интерфейсов "Полный справочник по C#" , стр 320.

Смотрите также:


Комментарии



  • 1
  • 2 (Текущая страница)
public interface IFirst
{
    void A();
}

public interface ISecond
{
    void A();
}

Обращаем внимание на инкапсуляцию

public class MyClass1 : IFirst, ISecond
{
    void IFirst.A()
    {
        
    }

    void ISecond.A()
    {
        
    }
}

public class MyClass2 : IFirst, ISecond
{
    public void A()
    {

    }
}
Просто к теме за реализацию интерфейсов

Extravert, а MyClass2 разве будет работать?

alexprey, да
MyClass2 реализует общий для двух интерфейсов метод A(). Сами интерфейсы, как бы сказать, они же не содержат метода как таковые, они обязывают к реализации и абстрагируют. А один и тот же метод это или два разных уже другое дело.

Я почему-то думал, что второй способ как раз не вызывает вопросов :) в то время как с первым все не так гладко - чтобы использовать методы нужно приводить экземпляр к интерфейсу. А еще их "смешивать" можно.

Вы че прикалываетесь? MyClass1 это буллщит полный, такого не должно быть имхо, никому не советую такое нигде использовать, почему вообще такое можно писать - большой вопрос

Doc:

почему вообще такое можно писать

Это же шарпы, если не ошибаюсь, там и не такое бывает.

Doc, булщит - да. Не стоит такого делать - да.
Вероятно, эта функция предусмотрена на случаи, когда разные интерфейсы разных библиотек просят реализовать метод с одинаковым названием. Модульный подход предусматривает автономные, несвязанные между собой вещи и это как бы намекает, что такие ситуации имеют место быть. В таких случаях такое решение лучше чем его отсутствие.
Это примерно та же история, что и с пространствами имен - там есть вероятность совпадения имен классов, тут есть вероятность совпадения имен методов. Только решается разными способами, а причины общие - избежать двоякости.

Кстати интересно как такая конструкция поведет себя под рефлексией - что там покажет. И попробовать, откроется ли под дерефлектором этот код.

Extravert, в такой ситуации, как по мне, лучше во враппер завернуть, чем ломиться в лоб.

Extravert, откроется, иначе бы это и не работало вовсе)

Знаешь, что самое забавное ? XD
Тот пример, который ты привел, и есть причина, почему в C# сделали множественное наследование интерфейсов и одиночное классов)

  • 1
  • 2 (Текущая страница)

Возможность добавлять комментарии была ограничена