0

私のジェネリッククラスは次のように定義されています:

public class MySortedList<TKey, TItem> where TItem : MyClass<TKey>

クラスのメソッドの 1 つで、TItem のインスタンスを作成し、その保護されたメソッドの 1 つを呼び出します。

TItemInstance.MyMethod();

ここで、次のエラーが表示されます

保護レベルが原因で MyMethod にアクセスできません

MyMethod にはどのレベルの保護が必要ですか?
ありがとうございました。

4

3 に答える 3

3

as として宣言されたメソッドはprotected、クラスとそのサブクラスでのみ使用できます。

クラス外でメソッドを使用する場合は、次のように宣言する必要がありますpublic

public void MyMethod()

または、呼び出し元が同じアセンブリで定義されている場合は、次のようになりinternalます。

internal void MyMethod()
于 2013-06-11T11:50:58.270 に答える
0

ここではクラス外でそのメソッドを使用するため、関数を含むクラスはMyMethodas として宣言する必要があります。publicだからそうあるべきですpublic

于 2013-06-11T11:51:17.903 に答える