ObsoleteAttribute クラス

定義

今後使用しないプログラム要素にマークを付けます。 このクラスは継承できません。

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 ます。 コード内のプロパティの値にアクセスすると、コンパイラの警告が生成され OldProperty ますが、メソッドを呼び出すと CallOldMethod コンパイラエラーが生成されます。 この例では、ソースコードをコンパイルしようとしたときに生成される出力も示しています。

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 は、アセンブリ、モジュール、パラメーター、および戻り値を除くすべてのプログラム要素に適用されます。 要素を不使用としてマークすると、その要素は将来のバージョンの製品で削除される可能性があることがユーザーに通知されます。

プロパティに割り当てられた文字列 Message は、属性ターゲットがコードで使用されるときにコンパイラによって出力されます。 文字列には、何らかの回避策やプログラムによる代替手段が用意されているのが理想的です。

プロパティを使用し IsError て、コンパイラに対して、属性を使用して ObsoleteAttribute エラー ( IsErrortrue ) または警告 (が) を生成するかどうかを指定し IsError false ます。

属性の使用方法の詳細については、「 属性」を参照してください。

Windows 8 x ストアアプリ

Windows メタデータライブラリ (winmd ファイル) を作成すると、が ObsoleteAttribute 属性と Windows の両方としてエクスポートされ ObsoleteAttribute ます。 ObsoleteAttribute ソースコードにのみが存在する場合は、windows.foundation.deprecatedattribute 属性。 は ObsoleteAttribute 、次のようにに変換され DeprecatedAttribute ます。

  • message error 引数と引数の両方が存在する場合、 message は引数に割り当てられ DeprecatedAttribute message ます。 のエラー値は true DeprecationTypeにマップされ、 error の値は false DeprecationTypeにマップされます。

  • message引数がで指定されていない場合、 ObsoleteAttribute の既定値 DeprecatedAttribute は "element_name は非推奨とされます" です。ここで element_name は、属性が適用されるターゲットプログラム要素の名前です。

  • error引数がに存在しない場合 ObsoleteAttribute 、の既定値 DeprecatedAttribute はに DeprecationType.Deprecate なります。

重要

Windows を直接適用します。このエクスポートは自動的に行われるため、windows.foundation.deprecatedattribute 属性をマネージコードにすることはお勧めしません。

コンストラクター

ObsoleteAttribute()

ObsoleteAttribute クラスの新しいインスタンスを、既定のプロパティを使用して初期化します。

ObsoleteAttribute(String)

代替手段メッセージを指定して、ObsoleteAttribute クラスの新しいインスタンスを初期化します。

ObsoleteAttribute(String, Boolean)

代替手段メッセージと、今後使用しないとマークされた要素を使用するとエラーになるかどうかを示す Boolean 値を指定して、ObsoleteAttribute クラスの新しいインスタンスを初期化します。

プロパティ

DiagnosticId

API の使用をレポートするときにコンパイラで使用される ID を取得または設定します。

IsError

今後使用しないとマークしたプログラム要素が使用された場合に、コンパイラでエラーとして処理するかどうかを示す値を取得します。

Message

代替手段のメッセージを取得します。

TypeId

派生クラスで実装されると、この Attribute の一意の識別子を取得します。

(継承元 Attribute)
UrlFormat

対応するドキュメントの URL を取得または設定します。 API では、実際の URL の代わりに書式指定文字列が受け取られて、診断 ID を含む汎用 URL が作成されます。

メソッド

Equals(Object)

このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。

(継承元 Attribute)
GetHashCode()

このインスタンスのハッシュ コードを返します。

(継承元 Attribute)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
IsDefaultAttribute()

派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。

(継承元 Attribute)
Match(Object)

派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。

(継承元 Attribute)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

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

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

一連の名前を対応する一連のディスパッチ識別子に割り当てます。

(継承元 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。

(継承元 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。

(継承元 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。

(継承元 Attribute)

適用対象

こちらもご覧ください