键入.net35的.GetEnumUnderlyingType()替换

本文关键字:替换 GetEnumUnderlyingType net35 键入 | 更新日期: 2023-09-27 18:00:39

我正在寻找一种方法来复制.net35中缺少的Type.GetEnumUnderlyingType()的功能。

键入.net35的.GetEnumUnderlyingType()替换

只需使用Enum.GetUnderlyingType即可:

返回指定枚举的基础类型。

以下是Type:中GetEnumUnderlyingType的实现

public virtual Type GetEnumUnderlyingType()
{
    if (!this.IsEnum)
        throw new ArgumentException(
            Environment.GetResourceString("Arg_MustBeEnum"), "enumType");
    FieldInfo[] fields = this.GetFields(
        BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
    if (fields == null || fields.Length != 1)
        throw new ArgumentException(
            Environment.GetResourceString("Argument_InvalidEnum"), "enumType");
    return fields[0].FieldType;
}