C♯相談室 Part28
■ このスレッドは過去ログ倉庫に格納されています
0451デフォルトの名無しさん
2006/01/07(土) 00:35:21インスタンスの状態に関係なく処理でき副作用がないのなら、そのメソッドが静的かどうかは余り関係がない。
違うスレッドが同時に実行しようが何の問題もない。
「インスタンスの状態に関係なく処理できる」のが静的メソッドの必要条件。
「副作用がない」は必要条件ではないが、副作用があると極めて面倒なことになるだろう。特にWebアプリでは。
まあ要は静的フィールド(プロパティ)を作るなと言うことだが。
必要条件を満たしているとして、
そのオブジェクトインスタンスに意味的に関わるのなら非静的、そうでないのなら静的、とか。
インスタンスが必要でないのなら静的、とか。
自身の型のインスタンスを作る(WebRequest.Createみたいの)なら静的、とか。
ま、静的メソッドを作る機会は(オブジェクト指向に則ってれば)あんまりないけど。
> 例えばメール送信クラスを作ったとして、これはstaticにすべきでしょうか?しないほうがいいでしょうか?
> Webアプリなので、この関数自体は同時に呼び出される可能性はあります。
メールクラスの送信メソッド?
まさにインスタンスメンバにすべきものじゃね?
メールクラス作って、本文プロパティやら件名プロパティやら埋めて送信メソッド実行。
■ このスレッドは過去ログ倉庫に格納されています