Прежде всего: извините, если вопрос странно сформулирован. Я новичок в мультиклассе в C #, и я несколько застрял.
В настоящее время я делаю систему инвентаризации, которая использует один словарь для всех предметов. Сами элементы имеют разные классы и используют интерфейсы для свойств. Допустим, это интерфейсы, для простоты. Один интерфейс имеет имя, второй имеет определенное значение, а третий имеет еще одно конкретное значение.
Кажется, я не могу понять, как (если это возможно) получить доступ к свойствам второго интерфейса, так как я получаю только предложения типа элемента, используемого в словаре.
// the interface examples
interface IStandardProperties
{
string Name { get; set; }
}
interface IItemType1
{
int SomeValue { get; set; }
}
interface IItemType2
{
int AnotherValue { get; set; }
}
// Then we have two classes that uses these.
class ItemType1 : IStandardProperties, IItemType1
{
public string Name;
public int SomeValue;
public ItemType1()
{
this.Name = "Item type 1"; this.SomeValue = "10";
}
}
class ItemType2 : IStandardProperties, IItemtype2
{
public string Name;
public int SomeValue;
public ItemType1()
{
this.Name = "Item type 1";
this.AnotherValue = "100";
}
}
// and finally the dictionary in question.
Dictionary<int, IStandardProperties> items = New Dictionary<int, IStandardProperties>();
Теперь оба этих элемента могут храниться в словаре, однако я не могу понять, как (или если это возможно) получить доступ к значению, сохраненному в свойствах интерфейса SomeValue и AnotherValue через словарь. Я видел пару примеров, где используется «as InterfaceName», но я не уверен в его использовании.
Есть ли способ получить к ним доступ? ( и в случае, если я просто ужасно ошибаюсь по поводу интерфейсов, эти значения даже хранятся в словаре? )
Я ни в коем случае не эксперт, поэтому я хотел бы получить любые исправления или помощь, которую вы могли бы оказать в этом вопросе.