ObsoleteAttribute クラス

定義

今後使用しないプログラム要素にマークを付けます。Marks the program elements that are no longer in use. このクラスは継承できません。This class cannot be inherited.

public ref class ObsoleteAttribute sealed : Attribute
[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
継承
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 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 メタデータライブラリ ( ObsoleteAttribute winmd ファイル) を作成する場合、がソースコードに存在するObsoleteAttribute ObsoleteAttribute場合、は属性とwindows.foundation.deprecatedattribute属性の両方としてエクスポートされます。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. は、次のDeprecatedAttributeようにに変換されます。ObsoleteAttributeThe ObsoleteAttribute is transformed to the DeprecatedAttribute as follows:

  • 引数とmessage message DeprecatedAttribute message引数の両方が存在する場合、は引数に割り当てられます。 errorIf 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.

  • ** ** DeprecatedAttribute引数がObsoleteAttributeで指定されていない場合、の既定値は "element_name is deprecated" です。ここで、element_name は、属性が適用されるターゲットプログラム要素の名前です。 messageIf 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.

  • 引数がに存在ObsoleteAttributeしない場合、のDeprecatedAttribute既定値はDeprecationTypeです。 errorIf 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)

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

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

Message

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

TypeId

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

(継承元 Attribute)

メソッド

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()

現在のオブジェクトを表す string を返します。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)

適用対象

こちらもご覧ください