【问题标题】:C# compile error: “X is inaccessible due to its protection level”C# 编译错误:“X 由于其保护级别而无法访问”
【发布时间】:2011-04-05 10:54:06
【问题描述】:

c#什么时候出现这个编译错误?

'Favorite.Favorites.FavoriteCollection' 由于其保护级别而无法访问

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);
    }
}

【问题讨论】:

  • Favorite.Favorites.FavoriteCollection 是如何声明的?

标签: c# compiler-errors access-levels


【解决方案1】:

此编译时错误意味着您尝试访问的属性不是public,访问它的唯一方法是修改其access modifier 或使用reflection

【讨论】:

  • 这个问题只是在form1.cs中
  • @arash,你希望我们做什么?
  • @arash:问题出在 form1.cs 中,因为您可以在此处访问 objFavoritesFavoriteCollection 属性。如果您希望其他类(如Form1)能够访问它,则需要修改该属性的定义。
【解决方案2】:

当它不够可见时:例如,如果该课程在另一个项目中并且可见度为 interal 或更低(protectedprivate),您将无法使用它.在这种情况下,您必须将其更改为公开:

public class FavoriteCollection
{
...
}

【讨论】:

  • 它是一个arraylist。我在另一个项目中使用它,所以我重命名为另一个名称,但它也有同样的错误
猜你喜欢
  • 1970-01-01
  • 2014-08-15
  • 1970-01-01
  • 2012-10-05
  • 1970-01-01
  • 2017-08-23
  • 1970-01-01
  • 2015-09-26
  • 2011-09-01
相关资源
最近更新 更多