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)
相关推荐
请叫我聪明鸭5 小时前
基于 marked.js 的扩展机制,创建一个自定义的块级容器扩展,让内容渲染为<div>标签而非默认的<p>标签
开发语言·前端·javascript·vue.js·ecmascript·marked·marked.js插件
仍然.5 小时前
Java---反射、枚举、lambda表达式 和 泛型进阶
java·开发语言
Zsy_0510035 小时前
【C++】类和对象(二)
开发语言·c++
Duang007_5 小时前
【万字学习总结】API设计与接口开发实战指南
开发语言·javascript·人工智能·python·学习
一叶星殇5 小时前
C# .NET 如何解决跨域(CORS)
开发语言·前端·c#·.net
Elieal5 小时前
Java项目密码加密实现详解
java·开发语言
shhpeng5 小时前
go mod vendor命令详解
开发语言·后端·golang
Java程序员威哥5 小时前
用Java玩转机器学习:协同过滤算法实战(比Python快3倍的工程实现)
java·开发语言·后端·python·算法·spring·机器学习
GeekyGuru5 小时前
C++跨平台开发的核心挑战与应对策略
开发语言·c++
Howrun7776 小时前
信号量(Semaphore)
开发语言·c++·算法