C# 为什么嵌套的公共类比其父类更难访问?
我有以下课程:C# 为什么嵌套的公共类比其父类更难访问?,c#,generics,abstract-class,nested-class,C#,Generics,Abstract Class,Nested Class,我有以下课程: public abstract class Navigator<T> where T : Navigator.Route { public class Route { } } public class P2PNavigator : Navigator<P2PNavigator.Route> { public class Route : Navigator.Route { } } Route与Navigat
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不同,它应该会给您带来其他错误
正确指定类型的代码编译正常:
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类,这些类会使示例中出现错误。Navigator.Route与Navigator.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类,这些类会使您的示例出现错误。我没有看到Navigator.Route的定义。我看到了2pWaveNavigor和Navigor,这不是NavigalPuff@ MoHo,它是至关重要的,例如,我得到准确的错误,如果这个类不是公共的类路由{…},我会考虑将公共嵌套类从对象中移出。如果您使用代码分析,您将在SD中获得@JG,谢谢!我完全支持最佳实践。我没有看到导航器的定义。这里是路线。我看到了2pWaveNavigor和Navigor,这不是NavigalPuff@ MoHo,它是至关重要的,例如,我得到准确的错误,如果这个类不是公共的类路由{…},我会考虑将公共嵌套类从对象中移出。如果您使用代码分析,您将在SD中获得@JG,谢谢!我完全支持最佳实践。应该是公共抽象类导航器,其中T:Navigator.Route{public class Route{}}public class P2PNavigator:Navigator{public new class Route:Navigator.Route{}}@KeithNicholas,如果想要在没有警告的情况下编译,那么在第二个路由类中添加新的路由是很好的。我会保持代码原样,因为它在实际代码中可能应该以不同的方式修复。应该是公共抽象类导航器,其中T:Navigator.Route{public class Route{}}public class P2PNavigator:Navigator{public new class Route:Navigator.Route{}@KeithNicholas,如果想要在没有警告的情况下编译,那么在第二个路由类中添加新的路由是很好的。我会保持代码的原样,因为在实际代码中可能应该以不同的方式修复它。