C#IList参数导致可访问性不一致

时间:2016-04-24 08:24:12

标签: c# generics visual-studio-2005

我尝试使用VS2005在c#中创建一个类,如下所示:

public class MyClass
{
        private string reference;
        private IList<MyClassItem> items;

        public MyClass(string reference, IList<MyClassItem> items)  // error here
        {
            this.reference = reference ;
            this.items = items;
        }

        public string Reference { get { return this.reference ; } set { this.reference = value; } }
        public IList<MyClassItem> Items { get { return this.items; } set { this.items = value; } }   // error line
}

public class MyClassItem
{
        private string id;
        private string name;

        public MyClassItem(string id, string name)
        {
            this.id= id;
            this.name= name;
        }
        public string Id{ get { return this.id; } set { this.id= value; } }
        public string Name { get { return this.name; } set { this.name= value;}}

}

我收到了错误:

  

可访问性不一致:参数类型   &#39; System.Collections.Generic.IList<Library.Model.MyClassItem>&#39;少了   方法&#39; Library.Model.MyClass.Jurnal(string, System.Collections.Generic.IList<Library.Model.MyClassItem>)&#39; D:... \ MyClass.cs 15 16图书馆   错误4可访问性不一致:属性类型   &#39; System.Collections.Generic.IList<Library.Model.MyClassItem>&#39;少了   比财产更方便   &#39; Library.Model.MyClass.Items&#39; D:... \ MyClass.cs 28 34图书馆

1 个答案:

答案 0 :(得分:0)

我能想象的唯一问题是你将MyClassItem定义为其他类的一部分,它是私有的,受保护的或内部的,例如:

internal class MyOtherClass
{
    //MyOtherClass properties and functions

    public class MyClassItem
    {
    }

}

只需将MyClassItem直接移到命名空间中即可解决问题