我的泛型类定义如下:
public class MySortedList<TKey, TItem> where TItem : MyClass<TKey>
在一个类的方法中,我创建了一个 TItem 实例并调用它的一个受保护方法:
TItemInstance.MyMethod();
在这里我得到错误
MyMethod 由于其保护级别而无法访问
MyMethod 应该具有什么级别的保护?
谢谢你。
我的泛型类定义如下:
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
。