Obsolete属性

.NETを使っていると、たまに「古いバージョンなので推奨しません」みたいな警告が出るのですが、同様のことを Obsolete属性で実現できるようです。
一応の互換性は保ちたいものの、徐々に新モジュールに置き換えていきたいときなどに便利ですね。

Obsolete (C# プログラミング ガイド)

Obsolete 属性によって、プログラム要素が、使用を推奨されない要素としてマークされます。要素に Obsolete とマークするたびに、属性の設定内容に応じて、警告やエラーが生成されます。次に例を示します。

コードのコピー
[System.Obsolete("use class B")]
class A
{
public void Method() { }
}
class B
{
[System.Obsolete("use NewMethod", true)]
public void OldMethod() { }
public void NewMethod() { }
}

この例で、Obsolete 属性は A クラスと B.OldMethod メソッドに適用されています。B.OldMethod に適用されている属性のコンストラクタで、2 つ目の引数が true に設定されているため、このメソッドを使用するとコンパイラ エラーになり、A クラスを使用すると単に警告が生成されます。一方で、B.NewMethod を呼び出しても警告やエラーは生成されません。

属性のコンストラクタで、1 つ目の引数として指定された文字列は、警告またはエラーの一部に表示されます。たとえば、次のコードを前の定義と共に使用すると、2 つの警告と 1 つのエラーが生成されます。

コードのコピー
// Generates 2 warnings:
A a = new A();
// Generate no errors or warnings:
B b = new B();
b.NewMethod();
// Generates an error, terminating compilation:
b.OldMethod();

A クラスでは 2 つの警告が生成されます。1 つはクラス参照の宣言、もう 1 つはクラスのコンストラクタで生成されます。

Obsolete 属性は引数なしでも使用できますが、その項目の使用が推奨されない理由と代わりに使用する項目を引数に指定することをお勧めします。

Obsolete 属性は、シングルユースの属性です。属性を使用できる任意の要素に適用できます。Obsolete は、ObsoleteAttribute のエイリアスです。


投稿者: ♪ 日時: 2008年04月14日 17:52 このエントリーをはてなブックマークに追加 このエントリーをYahoo!ブックマークに登録 Save This Page to del.icio.us このエントリーをlivedoorクリップに追加 このエントリーをニフティクリップに追加 このエントリーをBuzzurlに追加このエントリーをBuzzurlに追加 このエントリーをBlogPeople Tagsに追加 このエントリーをBlogPeople Instant Bookmarkに追加 このエントリーをPingKingポッケに追加 このエントリーをFC2ブックマークへ追加 このエントリーをnewsingへ追加 Yahoo!ブックマークでこのサイトを登録している人数 人が登録

トラックバック

このエントリーのトラックバックURL:
http://magicbox.sakura.ne.jp/mt/mt-tb.cgi/614

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)