我有以下類別:爲什麼嵌套的公共類不如父級可訪問?
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.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
{
}
}
我在這裏沒有看到Navigator.Route的定義。我看到P2PNavigator和Navigator,它不是導航器 –
Moho
2013-03-27 22:47:46
Per @Moho,它是至關重要的,例如,如果該類不像public class {...}那樣公開,那麼我會得到完全錯誤(有充分理由) ' – blins 2013-03-27 22:53:08
我會考慮將公共嵌套類移出對象。如果你使用代碼分析,你會得到[嵌套類型不應該是可見的](http://msdn.microsoft.com/en-us/library/ms182162.aspx) – 2013-03-27 22:57:32