У меня есть несколько классов, и некоторые унаследованы от определенного интерфейса. Есть ли способ, которым я могу использовать метод интерфейса из этого класса после проверки, если он сначала наследует от этого интерфейса
это базовый класс
public class Item
{
public string id;
public string prefabID;
public string title;
public string description;
}
это производный класс
public class InteractableObject : Item, IEffectReceiver
{
protected List<Stats> stats = new List<Stats>();
protected HashSet<Effects> currentEffects;
public List<Effects.EffectType> effectedBy = new List<Effects.EffectType>();
public GameObject destroyedPrefab;
private bool destructible = true;
private bool destroyed = false;
это интерфейс
public interface IEffectReceiver
{
void CheckEffect(Effects effect);
}
У меня есть класс ItemContainer, который содержит элементы, и поскольку базовый класс не наследует от IEffectReceiver, я могу сделать что-то вроде
if(Item i is IEffectReceiver)
{
i.CheckEffect()
}
Я бы предпочел избегать наследования Item от IEffectReceiver, если бы мог помочь, поэтому, если есть какие-то обходные пути, вы можете бросить мне путь, который был бы потрясающим.