Home > C#.NET > Obsolete属性

Obsolete属性

  • Posted by:
  • 2008年4月14日 17:52
  • C#.NET

.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 のエイリアスです。


Comments:0

Comment Form

Trackbacks:0

TrackBack URL for this entry
http://magicbox.sakura.ne.jp/mt/mt-tb.cgi/614
Listed below are links to weblogs that reference
Obsolete属性 from 爆裂!C#野郎

Home > C#.NET > Obsolete属性

Search
Feeds
Tag Cloud
Recommend

SQLパズル 第2版 プログラミングが変わる書き方/考え方
SQLパズル 第2版 プログラミングが変わる書き方/考え方

ソフトウェアアーキテクチャ―ソフトウェア開発のためのパターン体系
ソフトウェアアーキテクチャ―ソフトウェア開発のためのパターン体系

ITアーキテクト vol.1
ITアーキテクト vol.1

オブジェクト指向における再利用のためのデザインパターン
オブジェクト指向における再利用のためのデザインパターン

増補改訂版 Java言語で学ぶデザインパターン入門
増補改訂版 Java言語で学ぶデザインパターン入門

増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編
増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編

J2EEデザインパターン
J2EEデザインパターン

アンチパターン―ソフトウェア危篤患者の救出
アンチパターン―ソフトウェア危篤患者の救出

世界でいちばん簡単なネットワークのe本―ネットワークとTCP/IPの基本と考え方がわかる本
世界でいちばん簡単なネットワークのe本―ネットワークとTCP/IPの基本と考え方がわかる本

Return to page top