У меня есть простая иерархия классов (базовый класс A, производный класс B: A, производный класс C: A и т. Д.). У меня есть следующий код:Должен ли я использовать динамическое ключевое слово для оптимизации конверсий?
void computation(A base_class)
{
if (base_class is B)
{
//Do some stuff with (base_class as B)
}
if (base_class is C)
{
//Do some stuff with (base_class as C)
}
}
Я вспомнил о динамическом ключевом слове языка C#. Как я понял, я могу использовать следующий код (для оптимизации дополнительных преобразований).
void computation(A base_class)
{
dynamic temp = base_class as B;
if (temp != null)
{
//Do some stuff with temp
}
temp = base_class as C;
if (temp != null)
{
//Do some stuff with (base_class as C)
}
}
Какой вариант лучше использовать? Как насчет выполнения этих подходов?
'B temp = base_class as B;' 'dynamic' не имеет к этому никакого отношения. Это, безусловно, не улучшит производительность. –
@ Dennis_E, можете ли вы рассказать подробнее? Я немного не понимаю вас – LmTinyToon
Вам не нужно использовать 'dynamic', если вы знаете тип, на который вы производите. В этом случае вы можете просто использовать B B = base_class как B; if (b! = null) {...} ' – Lee