C#怎么判斷傳入int值是否是枚舉里面的值


你還在代碼里面通篇通過數字的定義類型。比如type為1 表示xx,type為2 表示yy嗎?然后程序里面通過數字1和2來判斷嗎?比如下面類似的代碼:

 

  1. if(type==1){
  2. //....
  3. }
  4. else if(type==2){
  5. //...
  6. }
  7. else if(type==3){
  8. //...
  9. }

 

老鳥們一般都會用枚舉來定義類型。

枚舉這個是一個好東西,可以提高代碼的可讀性和可維護性。尤其asp.net mvc中的Action參數也可以定義為枚舉,這樣請求傳入的int值,后台會自動轉為枚舉類型。(asp.net mvc model綁定特性,asp.net mvc強大之處)

有時候,我們想要知道傳入int值是否是枚舉里面的值。你以前是不是一個值一個值的去判斷的?

比如定義如下枚舉:

  1. public enum PayType{
  2. Alipay=1,
  3. Weixin=2
  4. }

 

當API定義type為數字類型時,我們想知道payType是否是枚舉里面的值(也就是1或2)

檢驗調用代碼:

 

  1. Enum.IsDefined(typeof(PayType), req.type)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM