我的通用类定义如下:
public class MySortedList<TKey, TItem> where TItem : MyClass<TKey>
在一个类的方法中,我创建了一个 TItem 实例并调用它的一个受保护方法:
TItemInstance.MyMethod();
这里我得到的错误是
MyMethod 由于其保护级别而无法访问
MyMethod 应该有什么级别的保护?
谢谢你。
声明为
protected
的方法只能在类及其子类中使用。
如果你想在类外使用方法,你应该声明为
public
:
public void MyMethod()
或者,如果调用者是在同一个程序集中定义的,
internal
:
internal void MyMethod()
因为
MySortedList
不是从 TItem
派生的,所以您需要将有问题的方法公开,以便它可以从 MySortedList
调用。
您只能从定义类或其派生类之一调用受保护的方法。
有关详细信息,请参阅Microsoft 文档。
你有
MyMethod
函数的类必须声明为public
,因为在这里你想在类外使用那个方法。所以应该是public
.