2011-02-23 76 views
0

我得到的可訪問性不一致的問題,我有一個包含其他類C#可訪問性不一致(多類)

namespace NS { 
public class Foo 
{ 
    public Foo() 
    { 
     this.bar = new List<Bar>(); 
    } 
    private List<Bar> bar; 
} 
public class Bar 
{ 
    public Bar() 
    { 
    } 
} 
} 

錯誤的列表中選擇一個類是屬性類型NS.Bar比財產NS不易進入.Foo.Bar

應用程序的結構是每個Foo都包含一個Bar的動態數組(列表)。這不是電子商務,但最好的例子就是電子商務商店 - >分類 - >產品,就數據的訪問方式而言。

+5

您錯過了提供錯誤的代碼部分。你發佈的代碼很好。 – 2011-02-23 15:28:43

+0

NS.Foo.Bar屬性的簽名是什麼,您的列表只有變量 – Fredou 2011-02-23 15:30:00

+0

您確定您的代碼示例是正確的嗎?它看起來應該工作,錯誤信息沒有任何意義(NS.Bar是公開的,所以它不能比任何東西都容易訪問,並沒有屬性NS.Foo.Bar) – Yhrn 2011-02-23 15:30:30

回答

2

我沒有收到任何編譯錯誤,你也不應該,你是否嘗試過在重新嘗試之前清理或重建項目?既然Bar是公開的,你應該沒有問題在其他課程中使用它。

+0

你是對的,錯誤消失時,我重建它。我認爲這是正確的,因爲在課程不公開時我發現錯誤。 – MattP 2011-02-23 15:32:25

+0

如果我的回答解決了您的問題,請接受它作爲答案。我很高興它幫助! :) – jlafay 2011-02-23 15:34:23

0

你確定你已經粘貼了正確的代碼嗎?因爲當屬性中使用的類型實際上比屬性本身不易訪問時,通常會出現此錯誤。也許你忘記了一個訪問分類器(所以它是默認的內部),你會得到這個錯誤。再次檢查代碼。

0

我看,是你真正的代碼看起來是這樣的:

namespace NS 
{ 
    public class Foo 
    { 
     public Foo() 
     { 
      this.Bar = new List<Bar>(); 
     } 

     public List<Bar> Bar {get;set;} 
    } 

    internal class Bar 
    { 
     public Bar() 
     { 
     } 
    } 
} 

在這裏,問題是,公共類Foo的公共財產Bar返回內部Bar的實例的列表。

+0

酒吧應該可能是內部的私人類必須嵌套在另一類 – Yhrn 2011-02-23 15:33:28

0

確保您的「酒吧」課程是公開的。如果它沒有明確公開,它可能被認爲是私人的或受保護的。