Когда речь идет об универсальном типе, Foo<T>
, T
называется универсальным аргументом или аргументом типа универсального типа Foo
в .NET System.Type
документация.
Теперь, когда я имею дело с типом, таким как int?
или Nullable<Bar>
, как мне ссылаться на универсальный аргумент (например, int
или Bar
в моем примере) при описаниитип?
Я бы назвал это базовым типом типа Nullable, но базовый тип обычно используется для ссылки на родительский класс при описаниииерархия классов ... так что я не считаю правильным говорить о базовом типе здесь.И используя терминологию универсальный аргумент типа Nullable, я чувствую себя к общему.
Итак, как вы говорите об этих типах?
А более конкретно, как быВы называете этот метод расширения:
public static System.Type GetXxxType(this System.Type type)
{
if ((type.IsGenericType) &&
(type.GetGenericTypeDefinition () == typeof (System.Nullable<>)))
{
return type.GetGenericArguments ()[0];
}
else
{
return null;
}
}
Когда передано Nullable<T>
, этот метод возвращает typeof(T)
в результате.