ObsoleteAttribute ObsoleteAttribute ObsoleteAttribute ObsoleteAttribute Class

定義

今後使用しないプログラム要素にマークを付けます。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.Struct | System.AttributeTargets.Enum | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field | System.AttributeTargets.Event | System.AttributeTargets.Interface | System.AttributeTargets.Delegate, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
[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
type ObsoleteAttribute = class
    inherit Attribute
Public NotInheritable Class ObsoleteAttribute
Inherits Attribute
継承
ObsoleteAttributeObsoleteAttributeObsoleteAttributeObsoleteAttribute
属性

次の例は、プロパティとマークされているメソッドを含むクラスを定義、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 will be removed in future versions of the product.

ObsoleteAttributeクラスには、2 つのプロパティが含まれています。The ObsoleteAttribute class includes two properties:

  • MessageMessage. 割り当てられた文字列、Message属性ターゲットがコードで使用されるときに、プロパティが、コンパイラによって生成されます。The string assigned to the Message property is emitted by the compiler when the attribute target is used in code. 文字列には、こと属性ターゲットは廃止され、可能であれば、いくつかの回避策またはプログラムによる方法を提供する必要がありますに注意してください。The string should note that the attribute target is obsolete and, if possible, provide some workaround or programmatic alternative.

  • IsErrorIsError. これはブール値を使用するかどうかをコンパイラに示す、ObsoleteAttribute属性エラーを出力することが原因でする必要があります (IsErrortrue) または警告 (IsErrorfalse)。This is a Boolean value that indicates 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.Metadata.DeprecatedAttribute属性の場合のみ、ObsoleteAttributeはソース コード内に存在します。When 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.Remove、およびerrorの値falseにマップDeprecationType.Deprecateします。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.Metadata.DeprecatedAttributeこのエクスポートが自動的に行われるため、マネージ コードに属性は推奨されませんが。Directly applying the Windows.Foundation.Metadata.DeprecatedAttribute attribute to managed code is not recommended, because this export occurs automatically.

コンストラクター

ObsoleteAttribute() ObsoleteAttribute() ObsoleteAttribute() ObsoleteAttribute()

ObsoleteAttribute クラスの新しいインスタンスを、既定のプロパティを使用して初期化します。Initializes a new instance of the ObsoleteAttribute class with default properties.

ObsoleteAttribute(String) ObsoleteAttribute(String) ObsoleteAttribute(String) ObsoleteAttribute(String)

代替手段メッセージを指定して、ObsoleteAttribute クラスの新しいインスタンスを初期化します。Initializes a new instance of the ObsoleteAttribute class with a specified workaround message.

ObsoleteAttribute(String, Boolean) ObsoleteAttribute(String, Boolean) ObsoleteAttribute(String, Boolean) ObsoleteAttribute(String, Boolean)

代替手段メッセージと、今後使用しないとマークされた要素を使用するとエラーになるかどうかを示す 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.

プロパティ

IsError IsError IsError IsError

今後使用しないとマークしたプログラム要素が使用された場合に、コンパイラでエラーとして処理するかどうかを示す Boolean 値を取得します。Gets a Boolean value indicating whether the compiler will treat usage of the obsolete program element as an error.

Message Message Message Message

代わりに使用できるプログラム要素の説明などを含む代替手段メッセージを取得します。Gets the workaround message, including a description of the alternative program elements.

TypeId TypeId TypeId TypeId

派生クラスで実装されると、この Attribute の一意の識別子を取得します。When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

このインスタンスのハッシュ コードを返します。Returns the hash code for this instance.

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object) Match(Object) Match(Object) Match(Object)

派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

明示的なインターフェイスの実装

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

一連の名前を対応する一連のディスパッチ識別子に割り当てます。Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

適用対象

こちらもご覧ください