Универсальные типы с параметром типа в C#

то, Почему я хочу облегченную версию его, - то, потому что я не доволен установкой вина на 208,2 МБ к моему плохому компьютеру.

208,2 МБ включает основную Винную платформу, необходимую для выполнения любого Приложения Windows или установщика, неважно, как маленький или большой. Вы рискуете своим приложением, не работающим или устанавливающим, если Вы не устанавливаете основную платформу. Можно попытаться удалить любой -doc пакеты, и т.д. после приложение в установленном и хорошо работать.

Кратко, нет, нет "легкой" версии Вина.

14
задан Max 30 October 2010 в 14:17
поделиться

4 ответа

public static List<T> CreateCompatibleList<T> (T t)
{
    return new List<T> () ;
}

var x = 10 ;
var l = CreateCompatibleList (x) ;
41
ответ дан 1 December 2019 в 06:12
поделиться

Вы пытаетесь заставить .Net установить общий тип с помощью оператора времени выполнения. Как вы знаете, это не сработает. Типы Generics должны быть установлены во время компиляции.

6
ответ дан 1 December 2019 в 06:12
поделиться

Определение универсальных шаблонов выполняется в C # следующим образом:

var someList = new List<int>();

Вы можете не определять универсальные шаблоны следующим образом:

var x = 1;
var someType = typeof(x);
var someList = new List<someType>();

, потому что вы указываете тип во время выполнения в в этом случае не время компиляции. C # не поддерживает это.

3
ответ дан 1 December 2019 в 06:12
поделиться

Вы не можете сделать это точно так, как вы просите, но с небольшим отражение, вы можете сделать то же самое

Type genericType = typeof(List<>);
Type[] type = new Type[] { typeof(int) };
Type instanceType = genericType.MakeGenericType(type);
object instance = Activator.CreateInstance(instanceType );
var l = (List<int>)instance;
2
ответ дан 1 December 2019 в 06:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: