Динамика и рефлексия работают нормально - , но при этом снижается производительность - и теряется строгая типизация, дизайн / четкость кода и т. Д.
т.е. вы всегда должны пытаться решать проблемы/ o it - если вы можете, ваш код позволяет это ...
Итак, и (примечание) в зависимости (очень) от вашего конкретного кода , потребности,
Вы также можете использовать «трюк», чтобы «вывести» тип и сделать его универсальным ...
class Program
{
static void Main(string[] args)
{
string something = "Apple";
int test = 5;
var list = something.GetList();
var listint = test.GetList();
Console.WriteLine(list.GetType());
}
}
static class Extension
{
public static List<T> GetList<T>(this T value)
{
return new[] { value }.ToList();
}
}
... т.е. если у вас есть значение для переменной и перед вводом«общий контекст»,
вы можете использовать расширения (которые очень полезны для этого), и позволить ему выводить тип и тип списка для вас
ПРИМЕЧАНИЕ: эта «работа вокруг», к сожалению, не всегда панорамируетсяи когда ваш код «слишком динамичен» (я знаю, что он не слишком «точен», но выходит за рамки этого), и если он зависит от типов, вызванных отражением и т. д.
т.е.Решение, это всего лишь пример, вам нужно было бы потеть немного :), чтобы сделать этоработать для вас - например, вам может потребоваться тип оболочки здесь и там, и очевидно, что создание списка таким способом может оказаться не тем, что вам нужно и т. д.