от
Прежде всего: извините, если вопрос странно сформулирован. Я новичок в мультиклассе в 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 items = New Dictionary();
Теперь оба этих элемента могут храниться в словаре, однако я не могу понять, как (или если это возможно) получить доступ к значению, сохраненному в свойствах интерфейса SomeValue и AnotherValue через словарь. Я видел несколько примеров, где используется «as InterfaceName», но я не уверен в использовании этого. Есть ли способ получить доступ к этим? (и в случае, если я просто ужасно ошибаюсь насчет интерфейсов, эти значения даже хранятся в словаре?) Я ни в коем случае не эксперт, поэтому я хотел бы получить любые исправления или помощь, которую вы могли бы оказать в этом вопросе.              

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
Когда вы создаете
Dictionary
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...