Как получить доступ к атрибутам из подтипов

Я следовал документации TSL по атрибутам и создал два класса:

[GraphNode]
cell struct Fruit
{
    string color;
}

[GraphNode, BaseType : Fruit]
cell struct Apple
{
    string variety;
}

Я использовал сгенерированный код следующим образом:

Apple apple = new Apple();
Console.WriteLine(apple.variety);
Console.WriteLine(apple.color);

Код может получить доступ к variety поле, но не может получить доступ к color поле:

"Apple" не содержит определения "color", и метод расширения "color", принимающий первый аргумент типа "Apple", не найден (вам не хватает директивы using или ссылки на сборку?)

Как я могу получить доступ к унаследованному атрибуту?

1 ответ

Решение

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

Другие вопросы по тегам