我正在研究泛型约束,因此遇到了这种情况并被卡住了。我尝试通过自己的类复制代码,但出现“不一致的不可访问性”。
//this is the reference study class
public class MainView<T> : System.Windows.Window where T : INotifyPropertyChanged, new(){}
//my own
interface ITest{}
class B : ITest
{
public B()
{
}
}
public class MyClass<T> : B where T : ITest, new()
{
}
我不知道这一点。参考学习班有什么?如何使用自己定义的类和接口进行相同的签名?
答案 0 :(得分:2)
请注意您的ITest
接口和B
类没有显式的访问修饰符;如果未提供默认值,则默认值为internal
(对于顶级类型),并且您正在MyClass
类的public
类中实现它们(比{{1 }},因此出现编译器错误)。解决方案是在这种情况下,将类型的访问修饰符更改为internal
,或者将public
类设为MyClass
而不是internal
。
public
有关访问修饰符的更多信息,可以在这里找到: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/accessibility-levels