ObsoleteAttribute クラス

定義

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

public ref class ObsoleteAttribute sealed : Attribute
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)]
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
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)>]
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 エラー ( IsErrortrue ) または警告 (が) を生成するかどうかを指定し IsError 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.Metadata.DeprecatedAttribute 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. ObsoleteAttribute 、次のようにに変換され DeprecatedAttribute ます。The ObsoleteAttribute is transformed to the DeprecatedAttribute as follows:

  • message error 引数と引数の両方が存在する場合、 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です。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)

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

適用対象

こちらもご覧ください