主婦と.NETと犬のぶろぐ

奥様 と プログラム と お犬様 の 楽しい日常

目次

Blog 利用状況

ニュース

書庫

日記カテゴリ

メソッド属性って便利!

メソッド属性って便利

一年前の記事なんですが...今日気づいたのでメモメモ...
テスト用コードをデバッグ時にのみ実行するには?

#if DEBUG
  何か処理
#endif

というのは知ってたのですが、カスタム定数でも指定できるのねん。

1)
プロジェクトのプロパティ→ビルド→カスタム定数に
CONDITION=1
としておいて、

2)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  Me.DebugMethodTest()
End Sub

_
Public Sub DebugMethodTest()
  Console.WriteLine("CONDITION1 は有効です")
End Sub

としておくと、(1)の定数の定義が無い時は、DebugMethodTest が走らない。
これは、

Public Sub DebugMethodTest()
#If CONDITION1 Then
  Console.WriteLine("CONDITION1 は有効です")
#endif
End Sub

と同じ事。
#ちょっとかじっただけなんで、詳しくは解りませんが C++ なんかの #ifdef と同じようなイメージなのかしら...?

あとは、最近知ったのが、Obsolete 属性
今まで、このメソッドをどこが使ってるか調べるのに、
一時的にメソッド名を変えて、タスクウィンドウに表示された箇所をつぶしていくか、
検索して探してつぶしていくかのどちらしか知らなかったのですが、
Obsolete 属性を使うと、なんと一発で使われているところが解るに加えて、
Obsolete 属性 の 引数によって、ビルドエラーにもできちゃうのだッ!
便利便利。

って知らなかったのは私だけかも...orz

投稿日時 : 2006年1月26日 12:38

Feedback

# re: メソッド属性って便利! 2006/01/26 12:58 じゃんぬ

TestMethod 属性とか。

# re: メソッド属性って便利! 2006/01/26 13:13 中博俊

Obsoluete 属性
ちょっと文字が多い(^^

独自定数による動きの変化は、パフォーマンスが優先されるプログラムのnullチェックなどに利用したりしなかったり(^^

# re: メソッド属性って便利! 2006/01/26 14:08 なおこ(・∀・)

>>じゃんぬさん
TestMethod って .NET 2.0 からですか?

>>中さん
>Obsoluete 属性
orz...
直しましたw

>パフォーマンスが優先されるプログラムのnullチェックなどに利用したりしなかったり
なるほど!

# re: メソッド属性って便利! 2006/01/26 21:47 りばてぃ

じゃんぬさんじゃないけど・・・。

TestMethod属性は、NUnitを使う、またはVSTSの単体テストツールを使う場合につけるやつですね。

SuppressMessage属性(.NET2.0)もなかなか。

# re: メソッド属性って便利! 2006/01/27 14:57 なおこ(・∀・)

>NUnitを使う、またはVSTSの単体テストツールを使う場合につけるやつ

ほほ~う...テストメソッドですか。
なるほどなるほど。

# re: メソッド属性って便利! 2006/01/29 4:21 みず

この世界って、いつまでたっても知らない事がなくならないし、ちょいちょい、新発見があるんですよねぇ。
だから面白いんだけど。

# re: blogのエントリの一部が消失してしまいました。 2006/08/14 23:14 中の技術日誌ブログ

re: blogのエントリの一部が消失してしまいました。

# VLvugXhACowWqoYQV 2012/01/07 3:33 http://www.luckyvitamin.com/c-1426-astaxanthin

The text is promising, will place the site to my favorites..!

タイトル
名前
Url
コメント