2010-08-29 38 views
3

當c#給出此編譯錯誤?C#編譯錯誤:「由於其保護級別X無法訪問」

'Favorite.Favorites.FavoriteCollection' is inaccessible due to its protection level

private void Form1_Load(object sender, EventArgs e) 
{ 
    Favorites objFavorites = new Favorites(); 

    objFavorites.ScanFavorites(); 
    foreach (WebFavorite objWebFavorite in objFavorites.FavoriteCollection) 
    { 
     ListViewItem objListViewItem = new ListViewItem(); 
     objListViewItem.Text = objWebFavorite.Name; 
     objListViewItem.SubItems.Add(objWebFavorite.Url); 
     lstFavorites.Items.Add(objListViewItem); 
    } 
} 
+1

如何聲明「Favorite.Favorites.FavoriteCollection」? – ChrisF 2010-08-29 16:17:15

回答

7

此編譯時錯誤意味着您試圖訪問該屬性不public和訪問它是通過修改的唯一方法及其access modifier或使用reflection

+0

這個問題只是在form1.cs – Arash 2010-08-29 16:04:43

+0

@arash,你期望我們做什麼? – 2010-08-29 16:06:53

+0

@arash:問題出在form1.cs中,因爲那是您訪問'objFavorites'的'FavoriteCollection'屬性的地方。如果您希望其他類(如'Form1')能夠訪問它,則需要修改該屬性的定義。 – grossvogel 2010-08-29 16:10:05

3

如果這還不夠明顯,達到:如果,例如類是在另一個項目和能見度interal或更低(protectedprivate),您將無法使用它。在這種情況下,您必須將其更改爲公開:

public class FavoriteCollection 
{ 
... 
} 
+0

ita arraylist.i在另一個項目中使用它,所以我重命名爲另一個名稱,但它也有相同的錯誤 – Arash 2010-08-29 15:53:29

相關問題