为什么嵌套的公共类比它的父类更难访问?
本文关键字:父类 访问 嵌套 为什么 | 更新日期: 2023-09-27 18:06:26
我有以下类:
public abstract class Navigator<T> where T : Navigator.Route
{
public class Route
{
}
}
public class P2PNavigator : Navigator<P2PNavigator.Route>
{
public class Route : Navigator.Route
{
}
}
在编译过程中我收到两个错误。
不一致的可访问性:约束类型为"导航器"。Route'不如Navigator
' 不一致的可访问性:基类导航器。Route'比类'P2PNavigator '更难访问。路线'
所有东西都具有public
可访问性。我还缺什么才能成功?我意识到我最终可以让它们都是命名空间级别的类,但我更喜欢嵌套。
EDIT:多亏了这些答案,我发现问题的根本原因是我的部分类没有正确定义。
public partial abstract class Navigator<T> where T : Navigator.Route
{
}
partial class Navigator // Different to Navigator<T> and implicitly internal.
{
public class Route
{
}
}
Navigator.Route
与Navigator<P2PNavigator.Route>.Route
不同,应该会给您其他错误。
指定正确类型的代码编译ok:
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
类,使您的示例编译时出现您看到的错误。