C# 判断值是否在枚举里

你还在代码里面通篇通过数字的定义类型。比如type为1 表示xx,type为2 表示yy吗?然后程序里面通过数字1和2来判断吗?比如下面类似的代码:

cs 复制代码
if(type==1){
//....
}
else if(type==2){
//...
}
else if(type==3){
//...
}

老鸟们一般都会用枚举来定义类型。

枚举这个是一个好东西,可以提高代码的可读性和可维护性。尤其asp.net mvc中的Action参数也可以定义为枚举,这样请求传入的int值,后台会自动转为枚举类型。(asp.net mvc model绑定特性,asp.net mvc强大之处)

有时候,我们想要知道传入int值是否是枚举里面的值。你以前是不是一个值一个值的去判断的?

比如定义如下枚举:

cs 复制代码
public enum PayType{

Alipay=1,

Weixin=2

}

当API定义type为数字类型时,我们想知道payType是否是枚举里面的值(也就是1或2)

检验调用代码:

cs 复制代码
Enum.IsDefined(typeof(PayType), req.type)
相关推荐
sunburn-12 小时前
Java 队列全面详解:从入门到面试实战
java·开发语言·汇编·ide·idea
AI直播技术杂谈12 小时前
AI直播推流链路中延迟优化的通用技术方案
开发语言·人工智能·php
Dxy123931021613 小时前
python 中的 APScheduler 使用详解
开发语言·python
福如意如我心意15 小时前
java虚拟线程和Go协程的区别
开发语言
weixin_4407841115 小时前
Java基础常见题
java·开发语言·python·java基础
(Charon)15 小时前
【C++】多线程死锁:产生原因、复现与解决方法
开发语言·c++·算法
跨境小彭15 小时前
Python列表去重的6种高效方法(含保留顺序+性能对比)
开发语言·python
今天AI了吗15 小时前
Python 基础语法从入门到使用详解
开发语言·人工智能·python
花落人散处16 小时前
CDiskClean 开发历程——忽略进程_拖拽功能实现参考
c#
雪之下雪乃的代码日记16 小时前
Python快速入门(Java开发者版)
java·开发语言·笔记·python