检查 enum 是否已过时

2024-04-26

我如何检查是否enum如果标记为过时?

public enum MyEnums
{
    MyEnum1,
    [Obsolete("How can you know that I'm obsolete?")]
    MyEnum2,
    MyEnum3
}

现在在运行时,我需要知道哪些是过时的:

foreach (var myEnum in Enum.GetValues(typeof(MyEnums)).Cast<MyEnums>())
{
    // How can I check if myEnum is obsolete?
}

以下方法检查枚举值是否具有Obsolete属性:

public static bool IsObsolete(Enum value)
{
    var fi = value.GetType().GetField(value.ToString());
    var attributes = (ObsoleteAttribute[])
        fi.GetCustomAttributes(typeof(ObsoleteAttribute), false);
    return (attributes != null && attributes.Length > 0);
}

你可以这样使用它:

var isObsolete2 = IsObsolete(MyEnums.MyEnum2); // returns true
var isObsolete3 = IsObsolete(MyEnums.MyEnum3); // returns false
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查 enum 是否已过时 的相关文章

随机推荐

  • 处理嵌入式系统中的堆栈溢出

    在嵌入式软件中 如何以通用方式处理堆栈溢出 我遇到过一些确实以硬件方式提供保护的处理器 例如最近的 AMD 处理器 维基百科上有一些技术 但这些是真正实用的方法吗 任何人都可以给出一个在当今 32 位嵌入式处理器的所有情况下都适用的明确建议
  • CRC 16 -DECT 与聚 x^16 + x^10 + x^8 + x^7 + x^3 + 1

    相信我 我已经尝试过编写这个代码 尝试过谷歌 但没有任何运气 我正在尝试使用这个 Poly 实现 CRC16 x 16 x 10 x 8 x 7 x 3 1 使用C语言 因为我对 PHP 有了更好的了解 所以我试图让一个函数运行 但我没有得
  • 有没有好的 LINQ 方法来计算笛卡尔积?

    我有一个像这样的类结构 Person Dogs dog 1 dog 2 etc Puppies puppy A puppy B etc 有一个人 他有 1 n 只狗 每只狗有 1 n 只小狗 我想要一份所有可能的小狗组合的列表 从每只狗中取
  • LLVM到底是什么?

    我一直听说 LLVM 它是 Perl 语言 然后是 Haskell 语言 然后有人用其他语言使用它 它是什么 它与 GCC 到底有什么区别 视角 安全等 LLVM 是一个用于构建 优化和生成中间和 或二进制机器代码的库 LLVM 可以用作编
  • 找不到 Android 支持库和媒体路由器 .jar 文件

    我对 Xamarin 完全陌生 我想将地图添加到 Xamarin Android 中的默认 hello world 我已经按照指南一步步准备了清单 还通过 sdk 管理器下载了支持库 但出现错误 要求我安装 SL 和 SL 媒体路由器 这里
  • AVCaptureMetadataOutput().rectOfInterest 不工作

    我正在构建一个UIView它有一个覆盖的盒子 最终目标是让 QR 码阅读器仅在 QR 落入盒子内时触发 我知道我需要设置 rectOfInterest 与黄色框相同 但在当前实现 下面的代码 中 阅读器不起作用 public overrid
  • Dotfuscator Pro无法读取Jenkins构建服务器下的许可信息

    我试图让 Dotfuscator Pro 4 13 在单元测试和创建安装包之间运行 我们使用的构建服务器是 Windows Server 2008 R2 上的 Jenkins 1 487 dotfuscator 的命令行非常简单 我使用 q
  • URL 重写查询数据库?

    我试图了解 URL 重写的工作原理 我有以下链接 mysite com profile php id 23 我想用用户的名字和姓氏重写上面的网址 mysite com directory liam gallagher 然而 根据我读到的内容
  • 扩展《斯巴达克斯》中的产品模型

    我正在尝试使用我在 items xml 中创建的新属性来扩展产品模型 但我似乎无法在 Spartacus 前面获取它 我添加了一个带有以下代码的product model ts文件 import Product as CxProduct f
  • Nativescript ios 中闪屏后显示白屏

    在 Nativescript ios 中 启动屏幕后几秒钟显示白屏 这种情况仅发生在我们的项目中 但示例项目运行良好 我检查了模拟器和 iPhone 5 iPhone 6 iPad mini 所有设备都显示白屏 我将 Nativescrip
  • 如何按会计季度分组的日期计算平均值

    我有下表 Date Country Class Value 6 1 2010 USA A 45 6 1 2010 Canada A 23 6 1 2010 Brazil B 65 9 1 2010 USA B 47 9 1 2010 Can
  • 从只读 couchdb 复制

    我有一台服务器 其中包含一个 couchdb 数据库 其中包含我的应用程序所需的信息 它包含几兆字节的内容 一些每天都会变化的文档 添加最新新闻 删除旧文档 更新一些文档 应用程序会尽可能与服务器数据库同步 以便离线使用此信息 然而 这些信
  • 根据选项元素中的文本进行选项选择

    我试图在下拉列表中选择将文本值传递到函数中的选项 获取其值 然后选择具有该值的选项 你能明白为什么这不起作用吗 function selectAndAddToCart value console log The selectAndAddTo
  • 颤动导航到新屏幕不起作用

    我正在构建一个登录屏幕 将数据传递到主屏幕 当我单击登录按钮时 什么也没有发生 没有错误 但也没有发送到新屏幕 这是按钮代码 Widget submitButton return Container margin EdgeInsets al
  • 如何在 Dockerfile 中添加除隐藏目录(如 .git)之外的所有文件/目录

    我们经常做的一件事就是将所有源代码打包在Dockerfile当我们构建 Docker 镜像时 ADD app 我们怎样才能避免包括 git目录以简单的方式 我尝试使用 Unix 方式来处理这个问题ADD app 完整样本 docker bo
  • Java中引用传递的疑惑

    所以我在读这个帖子 https stackoverflow com questions 40480 is java pass by reference和回复编号 2 在该示例中 调用该方法后 地址 42 name 处的 Dog 值是否更改为
  • Spring Hibernate:重新加载实体映射

    在 Web 应用程序中 我们使用 Spring 3 2 和 Hibernate 4 1 1 并实现类似插件的架构 可以在运行时添加和删除插件 对于每个模块 我们定义了一个单独的类加载器 并在 spring 上创建单独的子应用程序上下文 完整
  • 如何使用python中的turtle模块绘制颜色环

    我有下面的代码 它应该在一个圆圈周围绘制一圈颜色 但如果在移动到下一个之前打印和更改 8 次 则只有一种颜色 import turtle def drawCircle colorList radius for color in colorL
  • Win32 DrawText 行高

    我正在调用 Win32DrawText函数将一些文本输出到设备上下文中 文本很长 可以很好地换行到第二行 问题是我需要稍微减少行之间的间距 我想减少行高 关于如何做到这一点有什么想法吗 我只想打电话DrawText两次 每行一次 但随后我必
  • 检查 enum 是否已过时

    我如何检查是否enum如果标记为过时 public enum MyEnums MyEnum1 Obsolete How can you know that I m obsolete MyEnum2 MyEnum3 现在在运行时 我需要知道哪