C#开发过程中Obsolete标签的用法

在一个项目不断迭代的过程中,会对一些方法进行重写或优化,但是有些方法会在很多地方用到了,不能直接修改原方法,但是新的方法相比原方法又更好,这时候我们需要重写一个方法,并且提示后来用到该方法的开发人员使用新方法,这时候我们就要用到Obsolete标签了。

官方释义:

ObsoleteAttribute 适用于程序集、模块、参数和返回值之外的所有程序元素。 将元素标记为过时会通知用户元素可能会在产品的未来版本中删除。

使用案例:

M1和M2为老方法,我们新建一个M3,然后给M1和M2打上 Obsolete 标签,这样之前用过这个方法的就会有一个弃用提示。并且M2加上了提示信息,后面的false是非强制使用新方法,如果为True,则调用该老方法会报错。

案例代码:

class Program
{
    static void Main(string[] args)
    {
 
        int i1 = M1(1, 3);
 
        int i2 = M2(1, 3);
    }
    [Obsolete]
    static int M1(int a,int b)
    {
        return a + b;
    }
    [Obsolete("请使用M3(int,int)",false)]//如果为true 强制调用者使用M3(int,int) 这个方法,否则报错
    static int M2(int a, int b)
    {
        return a + b;
    }
    static int M3(int a, int b)
    {
        return a + b;
    }
}

2021-12-07注记:逛博客的时候突然发现之前写过一篇关于Obsolete的文章,这篇貌似有点多余,想想还是留着吧,毕竟还是花了一些时间整理出来的。附上篇文章电梯《C#中代码过期标志Obsolete的用法

THE END