2011-02-10 10 views
0

基本クラスと保護されたメソッドではいつ静的メソッドを使用する必要がありますか? (base.MethodNameを使用して、派生クラスから呼び出すことができます)基本クラスで静的メソッドを宣言する必要があるのはいつですか?

+0

「**静的メソッドを宣言する」(質問のタイトルのように)または「**静的メソッドを使用する」(質問の本文のように)を意味しますか? –

答えて

2

あなたの方法は、あなたが唯一の子孫がベースからメソッドを呼び出したいとき、保護対象
の状態に依存しない場合に静にのみ使用すべきです。一般に

Base.Methodをオーバーライドメソッド

+1

オブジェクトの状態 - >特定の瞬間におけるプライベートフィールドとパブリックフィールド/プロパティの値。 –

+1

'Base.Method'とは何ですか?その最後の文はどういう意味ですか? –

1

保護及び静的は排他的ではない場合に使用されます。

protectedは、派生クラスがベースメソッドにアクセスできるようにすることを意味します。

staticは、メソッドがインスタンスの状態にアクセスする必要がないことを意味します。インスタンスメソッドとは対照的に、クラスメソッドと呼ばれることがよくあります。

基本キーワードは、基本クラスからメンバーをオーバーライドする場合にのみ有効です(基本メンバーはしばしば仮想としてマークされます)。これにより、派生クラスでオーバーロードした場合のために、ベースメンバーを参照することができます。

1

静的メソッドの利点の1つは、コードのコピーが1つだけメモリに残ることです。これは、多くのメソッドを持つオブジェクトの大きなコレクションがある場合に特に便利です。言い換えれば、それはあなたのメモリフットプリントを減らすことができます。また、マルチスレッドアーキテクチャで共有データを処理する際に、保護されたコードブロックを制御する方が簡単で直感的です。しかし、オブジェクトのキャストされた(基本クラス)インスタンスを基本クラスの静的メソッドの1つに渡すのは構文的には不愉快かもしれませんし、開発者によってはこのコーディングスタイルで混乱するかもしれません。

関連する問題