C# 简单判断枚举值是否被定义
生活随笔
收集整理的這篇文章主要介紹了
C# 简单判断枚举值是否被定义
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C#枚舉類有自帶的函數用來判斷是否被定義:
bool IsDefined(Type enumType, object value)
| IsDefined(Type, Object) | 返回一個布爾值,該值指示給定的整數值或其名稱字符串是否存在于指定的枚舉中。 |
參數類型,可以是枚舉值、枚舉名、枚舉實例。
其實,也可以通過其他的方式快速判斷:
Enum.GetName(typeof(ETimeType), eType) != null
| GetName(Type, Object) | 在指定枚舉中檢索具有指定值的常數的名稱。 |
Array.IndexOf(Enum.GetValues(typeof(ETimeType)), eType) <= 0
| GetValues(Type) | 檢索指定枚舉中常數值的數組。 |
還有一個用起來比較容易混淆的方法:
Enum.TryParse(typeof(ETimeType), "Other", false, out eType)
| Parse(Type, String, Boolean) | 將一個或多個枚舉常數的名稱或數字值的字符串表示轉換成等效的枚舉對象。 一個參數指定該操作是否不區分大小寫。 |
其實parse 4 的時候,返回的并不是一個ETimeType的值,但是TryParse的返回結果是true。這個方法只是返回了一個等效的可枚舉對象,但并不代表被定義在這個枚舉類型中。
總結
以上是生活随笔為你收集整理的C# 简单判断枚举值是否被定义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学习记录:Monkey测试
- 下一篇: C#单例反射