我有以下课程:
public abstract class Navigator<T> where T : Navigator.Route
{
public class Route
{
}
}
public class P2PNavigator : Navigator<P2PNavigator.Route>
{
public class Route : Navigator.Route
{
}
}
在编译期间,我收到两个错误。
可访问性不一致:约束类型“Navigator.Route”的可访问性低于Navigator&lt; T&gt;'
可访问性不一致:基类“Navigator.Route”比类“P2PNavigator.Route”
更难访问
所有内容都具有public
辅助功能。我缺少什么让这项工作?我意识到我最终可以使它们成为所有命名空间级别的类,但我更喜欢嵌套。
编辑:由于答案,我发现问题的根本原因是我的部分课程没有正确定义。
public partial abstract class Navigator<T> where T : Navigator.Route
{
}
partial class Navigator // Different to Navigator<T> and implicitly internal.
{
public class Route
{
}
}
答案 0 :(得分:4)
Navigator.Route
与Navigator<P2PNavigator.Route>.Route
不同,应该会给您带来其他错误。
指定类型的代码正确编译好:
public abstract class Navigator<T> where T : Navigator<T>.Route
{
public class Route
{
}
}
public class P2PNavigator : Navigator<P2PNavigator.Route>
{
public class Route : Navigator<P2PNavigator.Route>.Route
{
}
}
你可能有一些非通用的Navigator
类,它使你的示例变得容易出错。