ASP.NET中Obsolete属性

ASP.NET中Obsolete属性

在代码中如何给调用者提示所调用的方法并不是最优的,它可以被一个更好的方法所替代?ASP.NET中可以使用Obsolete特性来标记该方法是一个过时或弃用的方法。

一、Obsolete属性使用方法

1、Obsolete attribute位于System命名空间,它是一个attribute类型,以Obsolete或者ObsoleteAttribute来指定,在编译时,会自动添加上 “Attribute” 后缀。

2、指定一个attribute,用方括号[]围起所期望的attribute,置于所要修饰的方法、接口、属性、委托、事件等语言元素之前。对于Obsolete attribute,还可以为其指定0、1或2个参数。

3、Obsolete attribute可以不含参数;

4、可以含一个参数,用以产生一个编译警告信息;

5、也可以含两个参数,第一个参数用以产生编译警告/错误时的提示信息,第二个参数用以指定处理方式(true:产生编译错误;false:产生编译警告)。

二、调用形式

[Obsolete(Message, IsError)]

参数说明

1、Message:可选,string类型,编译警告信息。

2、IsError:可选,bool类型,true:产生编译错误;false:产生编译警告。

三、Obsolete属性实例

  • C# 代码   复制
  • 
         public static class ObsoleteExample
         {
             // Mark OrderDetailTotal As Obsolete.
             [ObsoleteAttribute("This property (DepricatedOrderDetailTotal) is obsolete. Use InvoiceTotal instead.", false)]
             public static decimal OrderDetailTotal
             {
                 get
                 {
                     return 12m;
                }
            }
         
            public static decimal InvoiceTotal
            {
                get
                {
                    return 25m;
                }
            }
         
            // Mark CalculateOrderDetailTotal As Obsolete.
            [ObsoleteAttribute("This method is obsolete. Call CalculateInvoiceTotal instead.", true)]
            public static decimal CalculateOrderDetailTotal()
            {
                return 0m;
            }
         
            public static decimal CalculateInvoiceTotal()
            {
                return 1m;
            }
        }
    
    		
  • 调用

  • C# 代码   复制
  • 
       Console.WriteLine(ObsoleteExample.OrderDetailTotal);
       Console.WriteLine();
       Console.WriteLine(ObsoleteExample.CalculateOrderDetailTotal());
    
    		
  • 程序编译时

    标签: