如何在 C# 中将方法标记为已过时?


**已过时特性**用于标记代码中的类、方法、属性、字段、委托等元素为已过时或废弃。该特性在编译时读取,用于向开发者生成警告或错误。

如果我们希望确保程序员使用较新版本的方法,此特性可以提供帮助。当我们从旧方法过渡到新方法时,它也使过程更容易。将项目标记为已过时会警告用户程序元素将在代码库的未来版本中删除。

此特性位于**System 命名空间**中。Obsolete 特性通过在程序元素上方加上方括号中的“Obsolete”一词来修饰程序元素。因为它是一个特性,所以我们可以使用 Obsolete 或 ObsoleteAttribute。

Obsolete 特性具有三个构造函数:

  • [Obsolete] - 这是一个无参数构造函数,是使用此特性的默认方式。

  • [Obsolete(string message)] - 在这种格式中,我们可以得到此方法已过时的消息。

  • [Obsolete(string message, bool error)] - 在这种格式中,除了消息之外,我们还可以控制编译器是否应该在编译时抛出错误。

示例

using System;
namespace DemoApplication{
   class Demo{
      static void Main(string[] args){
         ObseleteMethod();
         ObseleteMethodWithMessage();
         ObseleteMethodWithMessageAndNoFail();
         ObseleteMethodWithMessageAndFail();
      }
      [Obsolete]
      public static void ObseleteMethod() { }
      [Obsolete("This Method is Deprecated")]
      public static void ObseleteMethodWithMessage() { }
      [Obsolete("This Method is Deprecated", false)]
      public static void ObseleteMethodWithMessageAndNoFail() { }
      [Obsolete("This Method is Deprecated", true)]
      public static void ObseleteMethodWithMessageAndFail() { }
   }
}

输出

以上代码的输出是

 

更新于:2020年8月4日

4K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告