0

我的泛型类定义如下:

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

在一个类的方法中,我创建了一个 TItem 实例并调用它的一个受保护方法:

TItemInstance.MyMethod();

在这里我得到错误

MyMethod 由于其保护级别而无法访问

MyMethod 应该具有什么级别的保护?
谢谢你。

4

3 回答 3

3

声明为的方法protected只能在类及其子类中使用。

如果要在类之外使用方法,则应将其声明为public

public void MyMethod()

或者,如果调用者在同一个程序集中定义,则internal

internal void MyMethod()
于 2013-06-11T11:50:58.270 回答
1

因为MySortedList不是从那里派生的,TItem所以您需要将有问题的方法公开才能从MySortedList.

您只能从定义类或其派生类之一调用受保护的方法。

有关详细信息,请参阅Microsoft 文档。

于 2013-06-11T11:50:38.570 回答
0

您拥有MyMethod函数的类必须声明为,public因为在这里您想在类之外使用该方法。所以应该是public

于 2013-06-11T11:51:17.903 回答