C♯相談室 Part21
■ このスレッドは過去ログ倉庫に格納されています
0402336
05/02/08 18:20:00一応、補足しておくと…
ここでいう this とは、例えばインスタンスフィールドへのアクセスを含みます。
class Item
{
private int value;
public void Hoge()
{
value = 100; // this.value = 100; と同義。
}
}
上記 Hoge() メソッドは static には成り得ない。
static メソッドは this にはアクセスできないため。
(Hoge() はステートを持つ。)
「this にアクセスしないのであれば、
それは(実装・設計の両面から見て)静的メソッドであるはずだ」という発想。
インスタンスが static フィールドであったとしても、
その(非 static)メソッドは、やはり自身へのアクセスを持ち続けるので、
「static 扱い」とはいえない。
メソッド(の呼び出し)はインスタンスの状態を変更する“可能性”がある。
クラスの使用者から見て、メソッドが static であるか否かは重要な意味を持つので注意。
■ このスレッドは過去ログ倉庫に格納されています