TGViewer
SpellSinger - разработчик игр на Unity SpellSinger - разработчик игр на Unity @spellsingergames · 548 subscribers
Post #54 814
Explicit Interface Implementation

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

Оказывается, шарп позволяет по разному имплементировать методы с одинаковыми названиями, но объявленными в разных интерфейсах, и вызывать нужную имплементацию в зависимости от того, к переменной какого типа ты обращаешься. Это называется Explicit Interface Implementation, по ссылке можно подробно почитать про это.

Соответственно, проблема из предыдущего поста решается следующим образом:

public interface ICollectable
{
CollectableSkin Skin { get; }
}
public abstract class CollectableType<TSkin> : ScriptableObject, ICollectable where TSkin : CollectableSkin
{
[field: SerializeField] public TSkin Skin { get; private set; }
CollectableSkin ICollectable.Skin => Skin;
}


Это именно то, что мне было нужно. В тех местах, где у меня переменная базового типа ICollectable, я получу базовый класс CollectableSkin, а там, где будет какой-то конкретный тип CollectableType<TSkin>, я получу конкретный TSkin

Ставь 🔥 если не знал про такое, 🤡 если для тебя это было очевидно.
  • 🤡 9
  • 🔥 2
  • ⚡ 1
  • 🍓 1
  • 🙈 1
More from @spellsingergames
  1. Oct 1, 2026Автор
  2. Aug 31, 2026Post #235
  3. Aug 25, 2026Прошли модерацию на Crazy Games. Basic Launch продлится до 15 сентября или пока не наберет…
  4. Aug 24, 2026А мы, тем временем, идём покорять #crazy_games Вчера ночью отправили билд на модерацию. Мо…
  5. Aug 24, 20262 недели нужно рекоммендеру Яндекс игр, чтобы как-то отреагировать на изменения метрик. AR…
  6. Aug 14, 2026Шестой эпизод подкаста ГЕЙМДЕВ ПОД ПИВОМ уже во вторник, в 22:30МСК! Хорошенечко отоспитес…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →