Синтаксис:
Используется csharp
public class InventoryItem2
{
public Item item;
public virtual void SetItem(Item item)
{
}
public virtual void SetItem<T>(T item) where T : Item
{
this.item = item;
}
}
{
public Item item;
public virtual void SetItem(Item item)
{
}
public virtual void SetItem<T>(T item) where T : Item
{
this.item = item;
}
}
Так же есть класс InventoryWeapon - ячейка которая в которую можно передать только тип Weapon (наследуется от Item), дабы исключить
попадания в эту ячейку ненужных мне предметов:
Синтаксис:
Используется csharp
public class InventoryWeapon2 : InventoryItem2
{
//здесь компилятор выдаёт ошибку, поэтому попробовал через generic метод сделать
public override void SetItem(Weapon weapon)
{
base.SetItem(item);
}
//здесь студия не видит поля от Weapon, только от Item
public override void SetItem<Weapon>(Weapon item)
{
base.SetItem(item);
//какие-то дополнительные действия с item
// ...
}
}
{
//здесь компилятор выдаёт ошибку, поэтому попробовал через generic метод сделать
public override void SetItem(Weapon weapon)
{
base.SetItem(item);
}
//здесь студия не видит поля от Weapon, только от Item
public override void SetItem<Weapon>(Weapon item)
{
base.SetItem(item);
//какие-то дополнительные действия с item
// ...
}
}
как можно решить эту задачу?