Дифференциация дочерних интерфейсов в словаре, ключом которого является родительский интерфейс.C#

Место общения программистов C#
Ответить
Гость
 Дифференциация дочерних интерфейсов в словаре, ключом которого является родительский интерфейс.

Сообщение Гость »


Предположим, у меня есть интерфейс

публичный интерфейс IBase { публичный недействительный Регистр(); } И некоторые другие интерфейсы

публичный интерфейс IPlayer : IBase { } общедоступный интерфейс IEnemy: IBase {} ... Практически каждый, кто реализует дочерний интерфейс, выполнит Register():

public void Register() { InterfaceContainer.instance.AddInterface(this, gameObject); } Наконец, InterfaceContainer — это синглтон, который выглядит следующим образом:

публичный класс InterfaceContainer { // одноэлементный материал public Dictionary словарь = new(); public void AddInterface (IBase iBase, GameObject gameObject) { словарь [iBase] = gameObject; } общественный GameObject Get (IBase iBase) => словарь [iBase]; } Метод Get(IBase) работает неправильно. Как мне правильно отличить ключи, если они являются дочерними интерфейсами? Другими словами, как я могу гарантировать, что вызов InterfaceContainer.instance.Get() вернет правильное значение?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»