Difference between 'enumType' and 'TEnum'
本文关键字:TEnum and enumType between Difference | 更新日期: 2023-09-27 18:07:01
c#新手。我正在寻找MSDN浏览enum
方法,但我无法分辨TEnum
和enumType
之间的区别。
public static bool TryParse<TEnum>(
string value,
out TEnum result)
public static string[] GetNames(
Type enumType)
这里有什么不同?对于第一种方法,返回enumType result
不是更好吗?
TEnum是枚举的泛型类型。您可以将任何枚举传递给该方法。
第二个方法是非泛型的,您将使用typeof关键字来标识枚举,并将枚举名称返回为字符串集合
其中TryParse<TEnum>()
为泛型方法,TEnum
为泛型类型参数。任何时候看到方法、类或接口声明后面跟着尖括号中的名称,就表示它是泛型类型。泛型用于提供编译时类型检查,并通过指定方法要使用的类型来提高性能。
GetNames
接受一个Type对象。特定的Type对象表示特定的类、接口或枚举。与Enum比较可能更好。解析:
public static Object Parse(
Type enumType,
string value
);
注意,Enum.Parse
返回一个object
,这需要强制转换为TEnum
。
泛型直到。net 2.0才被添加,所以你会看到许多方法有一个泛型版本和一个接受Type
对象的泛型版本。非通用版本在使用反射时也很有用。
第一个例子是一个泛型声明。通常,您通常只看到它为T
,但该代码的作者希望表示它应该是一个enum。
在第二个示例中,enumType
只是一个变量名。这两种方法所做的事情完全不同,您正在查看的这两部分服务于完全不同的目的。