Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 与x27之间的差异;枚举类型';和';十年';_C#_Visual Studio 2010_Visual Studio_Msdn - Fatal编程技术网

C# 与x27之间的差异;枚举类型';和';十年';

C# 与x27之间的差异;枚举类型';和';十年';,c#,visual-studio-2010,visual-studio,msdn,C#,Visual Studio 2010,Visual Studio,Msdn,新来这里的家伙。我环顾MSDN,浏览了enum方法,但我无法区分TEnum和enumType之间的区别 public static bool TryParse<TEnum>( string value, out TEnum result) public static string[] GetNames( Type enumType) publicstaticbooltryparse( 字符串值, 输出十毫微米结果) 公共静态字符串[]GetNames( 类型(枚举类型) 这里有

新来这里的家伙。我环顾MSDN,浏览了
enum
方法,但我无法区分
TEnum
enumType
之间的区别

public static bool TryParse<TEnum>(
string value,
out TEnum result)

public static string[] GetNames(
Type enumType)
publicstaticbooltryparse(
字符串值,
输出十毫微米结果)
公共静态字符串[]GetNames(
类型(枚举类型)
这里有什么区别?对于第一个方法,返回
enumType result
不是更好吗?

第一个示例是一个。通常,您通常只将其视为
T
,但该代码的作者希望表示它应该是一个枚举


在第二个示例中,
enumType
只是一个变量名。这两种方法所做的事情完全不同,您所看到的两种方法的用途完全不同。

TEnum是枚举的通用类型。您可以将任何枚举传递给该方法

第二种方法是非泛型方法,您可以使用typeof关键字来标识枚举,并将枚举名称作为字符串集合返回在
TryParse()中是一种方法,
TEnum
是泛型类型参数。每当您看到方法、类或接口声明后跟尖括号中的名称时,您都有一个泛型类型。泛型用于提供编译时类型检查,并通过指定方法要使用的类型来提高性能

GetNames
获取一个对象。特定类型对象表示特定的类、接口或枚举。这可能比:

请注意,
Enum.Parse
返回一个
对象
,该对象需要转换为
TEnum


泛型,直到.Net 2.0才添加,因此您将看到许多方法具有泛型版本和采用
类型的
对象的泛型版本。非泛型版本在使用时也很有用。

请阅读DOT NET中的泛型:Enum.GetNames()一直支持到.NET 1.0,这是它不使用泛型的基本原因。至少需要4.0才能使用该TryParse()方法。
public static Object Parse(
    Type enumType,
    string value
);