Как получить доступ к attributes (название фона, символа и модели подарка) у класса StarGiftBase?
var us = await _client.Contacts_ResolveUsername(*username*);
var t = await _client.Payments_GetSavedStarGifts(us.User, $"");
StarGift gift = t.gifts.First().gift;
string model = gift.attributes[0].name; //ошибка
Подарок(gift) получил, хочу узнать фон и тп через attributes, но пишет, что нет такого объекта, хотя в дебаге все замечательно отображается(не у всех подарков, я это знаю и учитываю)
Ответы (1 шт):
Автор решения: User12351259599491
→ Ссылка
Это называется pattern matching.
Каждую базовую сущность нужно проверять на конкретный (зависимый) тип, чтобы получить доступ к специфическим полям и методам.
Как в этом примере.
object gift ="";
if (gift is StarGiftUnique g)
{
foreach (var atr in g.attributes)
{
if (atr is StarGiftAttributeModel resultAttr)
{
Console.WriteLine(resultAttr.name);
}
}
}
