我的通用类定义如下:
public class MySortedList<TKey, TItem> where TItem : MyClass<TKey>
在一个类'方法中,我创建一个TItem实例并调用其受保护的方法之一:
TItemInstance.MyMethod();
我在这里得到错误
由于其保护级别
,MyMethod无法访问
MyMethod应该提供什么样的保护? 谢谢。
答案 0 :(得分:3)
声明为protected
的方法只能在类及其子类中使用。
如果您想在课堂外使用方法,则应将其声明为public
:
public void MyMethod()
或者,如果调用者在同一个程序集中定义,internal
:
internal void MyMethod()
答案 1 :(得分:1)
由于MySortedList
并非来自TItem
,因此您需要公开该方法,以便可以从MySortedList
调用此方法。
您只能从定义类或其派生类之一调用受保护的方法。
有关详细信息,请参阅the Microsoft documentation。
答案 2 :(得分:0)
您拥有MyMethod
函数的类必须声明为public
,因为在这里您要在类之外使用该方法。所以它应该是public
。