ObsoleteAttribute 클래스

정의

더 이상 사용하지 않는 프로그램 요소를 표시합니다.Marks the program elements that are no longer in use. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

public ref class ObsoleteAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)]
public sealed class ObsoleteAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)]
[System.Serializable]
public sealed class ObsoleteAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class ObsoleteAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)>]
type ObsoleteAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)>]
[<System.Serializable>]
type ObsoleteAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ObsoleteAttribute = class
    inherit Attribute
Public NotInheritable Class ObsoleteAttribute
Inherits Attribute
상속
ObsoleteAttribute
특성

예제

다음 예제에서는 속성 및 특성으로 표시 된 메서드를 포함 하는 클래스를 정의 합니다 ObsoleteAttribute .The following example defines a class that contains a property and a method that are marked with the ObsoleteAttribute attribute. 코드에서 속성 값에 액세스 하면 OldProperty 컴파일러 경고가 생성 되지만 메서드를 호출 하면 CallOldMethod 컴파일러 오류가 발생 합니다.Accessing the value of the OldProperty property in code generates a compiler warning, but calling the CallOldMethod method generates a compiler error. 또한이 예제에서는 소스 코드를 컴파일할 때 발생 하는 출력을 보여 줍니다.The example also shows the output that results when you attempt to compile the source code.

using System;
using System.Reflection;

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

   public static string NewProperty
   { get { return "The new property value."; } }

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

   public static string CallNewMethod()
   {
      return "You have called CallNewMethod.";
   }

   public static void Main()
   {
      Console.WriteLine(OldProperty);
      Console.WriteLine();
      Console.WriteLine(CallOldMethod());
   }
}
// The attempt to compile this example produces output like the following output:
//    Example.cs(31,25): error CS0619: 'Example.CallOldMethod()' is obsolete:
//            'This method is obsolete. Call CallNewMethod instead.'
//    Example.cs(29,25): warning CS0618: 'Example.OldProperty' is obsolete:
//            'This property is obsolete. Use NewProperty instead.'
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 CallNewMethod instead.", True)> 
   Public Function CallOldMethod() As String
      Return "You have called CallOldMethod."
   End Function
      
   Public Function CallNewMethod() As String   
      Return "You have called NewMethod."
   End Function   
   
   Public Sub Main()
      Console.WriteLine(OldProperty)
      Console.WriteLine()
      Console.WriteLine(CallOldMethod())
   End Sub  
End Module
'  The attempt to compile this example produces output like the following:
'    Example.vb(30) : warning BC40000: 'Public ReadOnly Property OldProperty As String' is obsolete: 
'                     'This property is obsolete. Use NewProperty instead.'.
'    
'          Console.WriteLine(OldProperty)
'                            ~~~~~~~~~~~
'    Example.vb(32) : error BC30668: 'Public Function CallOldMethod() As String' is obsolete: 
'                     'This method is obsolete. Call CallNewMethod instead.'.
'    
'          Console.WriteLine(CallOldMethod())
'                            ~~~~~~~~~~~~~

설명

ObsoleteAttribute 는 어셈블리, 모듈, 매개 변수 및 반환 값을 제외한 모든 프로그램 요소에 적용 됩니다.ObsoleteAttribute is applicable to all program elements except assemblies, modules, parameters, and return values. 요소를 사용 되지 않음으로 표시 하면 이후 버전의 제품에서 요소가 제거 될 수 있음을 사용자에 게 알립니다.Marking an element as obsolete informs users that the element may be removed in a future version of the product.

속성에 할당 된 문자열은 Message 코드에서 특성 대상이 사용 될 때 컴파일러가 내보냅니다.The string assigned to the Message property is emitted by the compiler when the attribute target is used in code. 이상적으로 문자열은 몇 가지 해결 방법이 나 프로그래밍 방식 대안을 제공 해야 합니다.Ideally, the string should provide some workaround or programmatic alternative.

특성을 IsError 사용 하 여 오류를 발생 시키는 지 여부 ObsoleteAttribute ( IsError is true ) 또는 경고 ( IsError is false )를 컴파일러에 나타내려면 속성을 사용 합니다.Use the IsError property to indicate to the compiler whether using the ObsoleteAttribute attribute should cause it to emit an error (IsError is true) or a warning (IsError is false).

특성을 사용 하는 방법에 대 한 자세한 내용은 참조 하세요. 특성합니다.For more information about using attributes, see Attributes.

Windows 8.x 스토어 앱Windows 8.x Store apps

Windows 메타 데이터 라이브러리 (winmd 파일)를 만들 때가 ObsoleteAttribute ObsoleteAttribute 소스 코드에만 있는 경우를 특성 및 windows.foundation.deprecatedattribute 특성으로 모두 내보냅니다. ObsoleteAttributeWhen you create a Windows Metadata library (.winmd file), the ObsoleteAttribute is exported as both the ObsoleteAttribute attribute and the Windows.Foundation.Metadata.DeprecatedAttribute attribute if only the ObsoleteAttribute is present in source code. 는 다음과 ObsoleteAttribute 같이로 변환 됩니다 DeprecatedAttribute .The ObsoleteAttribute is transformed to the DeprecatedAttribute as follows:

  • messageerror 인수가 모두 있으면 message 이 인수에 할당 됩니다 DeprecatedAttribute message .If the message and error arguments are both present, message is assigned to the DeprecatedAttribute message argument. 오류 값은 true DeprecationType에 매핑되고, error 값은 false DeprecationType. 사용 중단에 매핑됩니다.An error value of true maps to DeprecationType.Remove, and an error value of false maps to DeprecationType.Deprecate.

  • message에서 인수를 제공 하지 않는 경우의 ObsoleteAttribute 기본값은 DeprecatedAttribute "element_name 가 사용 되지 않습니다."입니다. 여기서 element_name 는 특성이 적용 되는 대상 프로그램 요소의 이름입니다.If the message argument is not supplied in the ObsoleteAttribute, its default value in the DeprecatedAttribute is "element_name is deprecated", where element_name is the name of the target program element to which the attribute is applied.

  • 에 인수가 없으면의 error ObsoleteAttribute 기본값 DeprecatedAttributeDeprecationType.Deprecate 입니다.If the error argument is not present in the ObsoleteAttribute, its default value in the DeprecatedAttribute is DeprecationType.Deprecate.

중요

Windows.foundation.deprecatedattribute 특성을 관리 코드에 직접 적용 하는 것은 권장 되지 않습니다 .이 내보내기는 자동으로 발생 하기 때문입니다.Directly applying the Windows.Foundation.Metadata.DeprecatedAttribute attribute to managed code is not recommended, because this export occurs automatically.

생성자

ObsoleteAttribute()

기본 속성을 사용하여 ObsoleteAttribute 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ObsoleteAttribute class with default properties.

ObsoleteAttribute(String)

지정된 해결 메시지를 사용하여 ObsoleteAttribute 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ObsoleteAttribute class with a specified workaround message.

ObsoleteAttribute(String, Boolean)

해결 메시지와, 오래된 요소를 사용하는 것이 오류로 간주되는지 여부를 나타내는 부울 값을 사용하여 ObsoleteAttribute 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ObsoleteAttribute class with a workaround message and a Boolean value indicating whether the obsolete element usage is considered an error.

속성

DiagnosticId

API 사용을 보고할 때 컴파일러가 사용할 ID를 가져오거나 설정합니다.Gets or sets the ID that the compiler will use when reporting a use of the API.

IsError

컴파일러에서 오래된 프로그램 요소를 사용하는 것을 오류로 처리할지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether the compiler will treat usage of the obsolete program element as an error.

Message

해결 방법 메시지를 가져옵니다.Gets the workaround message.

TypeId

파생 클래스에서 구현된 경우 이 Attribute에 대한 고유 식별자를 가져옵니다.When implemented in a derived class, gets a unique identifier for this Attribute.

(다음에서 상속됨 Attribute)
UrlFormat

해당 설명서의 URL을 가져오거나 설정합니다.Gets or sets the URL for corresponding documentation. API가 실제 URL 대신 형식 문자열을 허용하여 진단 ID를 포함하는 일반 URL을 만듭니다.The API accepts a format string instead of an actual URL, creating a generic URL that includes the diagnostic ID.

메서드

Equals(Object)

이 인스턴스가 지정된 개체와 같은지를 나타내는 값을 반환합니다.Returns a value that indicates whether this instance is equal to a specified object.

(다음에서 상속됨 Attribute)
GetHashCode()

이 인스턴스의 해시 코드를 반환합니다.Returns the hash code for this instance.

(다음에서 상속됨 Attribute)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
IsDefaultAttribute()

파생 클래스에서 재정의된 경우 이 인스턴스 값이 파생 클래스에 대한 기본값인지 여부를 표시합니다.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(다음에서 상속됨 Attribute)
Match(Object)

파생 클래스에서 재정의된 경우 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(다음에서 상속됨 Attribute)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다.Maps a set of names to a corresponding set of dispatch identifiers.

(다음에서 상속됨 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다.Retrieves the type information for an object, which can be used to get the type information for an interface.

(다음에서 상속됨 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(다음에서 상속됨 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다.Provides access to properties and methods exposed by an object.

(다음에서 상속됨 Attribute)

적용 대상

추가 정보