ObsoleteAttribute.IsError ObsoleteAttribute.IsError ObsoleteAttribute.IsError ObsoleteAttribute.IsError Property

定义

获取指示编译器是否将使用已过时的程序元素视为错误的布尔值。Gets a Boolean value indicating whether the compiler will treat usage of the obsolete program element as an error.

public:
 property bool IsError { bool get(); };
public bool IsError { get; }
member this.IsError : bool
Public ReadOnly Property IsError As Boolean

属性值

如果将使用已过时的元素视为错误,则为 true;否则为 falsetrue if the obsolete element usage is considered an error; otherwise, false. 默认值为 falseThe default is false.

示例

下面的示例定义一个类,包含两个成员标记为已过时。The following example defines a class that contains two members marked as obsolete. 第一个文件,一个名为属性OldProperty,它调用将产生编译器警告。The first, a property named OldProperty, produces a compiler warning if it is called. 第二个、 一个名为方法CallOldMethod,会生成编译器错误。The second, a method named CallOldMethod, produces a compiler error. 该示例使用反射来获取其相关信息ObsoleteAttribute特性应用于类型的成员,并显示的值及其MessageIsError属性。The example uses reflection to get information about the ObsoleteAttribute attributes applied to members of the type and displays the values of their Message and IsError properties.

using System;
using System.Reflection;

public class Example
{
   // Mark OldProperty As Obsolete.
   [ObsoleteAttribute("This property is obsolete. Use NewProperty instead.", false)] 
   public string OldProperty
   { get { return "The old property value."; } }
   
   public string NewProperty
   { get { return "The new property value."; } }

   // Mark OldMethod As Obsolete.
   [ObsoleteAttribute("This method is obsolete. Call NewMethod instead.", true)] 
   public string OldMethod()
   {
      return "You have called OldMethod.";
   }
      
   public string NewMethod() 
   {   
      return "You have called NewMethod.";
   }   

   public static void Main()
   {                 
      // Get all public members of this type.
      MemberInfo[] members = typeof(Example).GetMembers();
      // Count total obsolete members.
      int n = 0;
      
      // Try to get the ObsoleteAttribute for each public member.
      Console.WriteLine("Obsolete members in the Example class:\n");
      foreach (var member in members) {
         ObsoleteAttribute[] attribs = (ObsoleteAttribute[]) 
                                        member.GetCustomAttributes(typeof(ObsoleteAttribute), 
                                                                   false);
         if (attribs.Length > 0) {
            ObsoleteAttribute attrib = attribs[0];
            Console.WriteLine("Member Name: {0}.{1}", member.DeclaringType.FullName, member.Name);
            Console.WriteLine("   Message: {0}", attrib.Message);             
            Console.WriteLine("   Warning/Error: {0}", attrib.IsError ? "Error" : "Warning");      
            n++;
         }
      }
      
      if (n == 0)
         Console.WriteLine("The Example type has no obsolete attributes.");
   } 

}
// The example displays the following output:
//       Obsolete members in the Example class:
//       
//       Member Name: Example.OldMethod
//          Message: This method is obsolete. Call NewMethod instead.
//          Warning/Error: Error
//       Member Name: Example.OldProperty
//          Message: This property is obsolete. Use NewProperty instead.
//          Warning/Error: Warning
Imports System.Reflection

Public Module Example
   ' Mark OldProperty As Obsolete.
   <ObsoleteAttribute("This property is obsolete. Use NewProperty instead.", False)> 
   Public ReadOnly Property OldProperty As String
      Get
         Return "The old property value."
      End Get
   End Property
   
   Public ReadOnly Property NewProperty As String
      Get
         Return "The new property value."
      End Get
   End Property
   
   ' Mark OldMethod As Obsolete.
   <ObsoleteAttribute("This method is obsolete. Call NewMethod instead.", True)> 
   Public Function OldMethod() As String
      Return "You have called OldMethod."
   End Function
      
   Public Function NewMethod() As String   
      Return "You have called NewMethod."
   End Function   
   
   Public Sub Main()
      ' Get all public members of this type.
      Dim members() As MemberInfo = GetType(Example).GetMembers()
      ' Count total obsolete members.
      Dim n As Integer = 0
      
      ' Try to get the ObsoleteAttribute for each public member.
      Console.WriteLine("Obsolete members in the Example class:")
      Console.WriteLine()
      For Each member In members
         Dim attribs() As ObsoleteAttribute = CType(member.GetCustomAttributes(GetType(ObsoleteAttribute), 
                                                                             False), ObsoleteAttribute())
         If attribs.Length > 0 Then
            Dim attrib As ObsoleteAttribute = attribs(0)
            Console.WriteLine("Member Name: {0}.{1}", member.DeclaringType.FullName, member.Name)
            Console.WriteLine("   Message: {0}", attrib.Message)             
            Console.WriteLine("   Warning/Error: {0}", if(attrib.IsError, "Error", "Warning"))      
            n += 1
         End If
      Next
      
      If n = 0 Then
         Console.WriteLine("The Example type has no obsolete attributes.")
      End If 
   End Sub  
End Module
' The example displays the following output:
'       Obsolete members in the Example class:
'       
'       Member Name: Example.OldMethod
'          Message: This method is obsolete. Call NewMethod instead.
'          Warning/Error: Error
'       Member Name: Example.OldProperty
'          Message: This property is obsolete. Use NewProperty instead.
'          Warning/Error: Warning

适用于