Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# a<;列表>;_C#_List - Fatal编程技术网

C# a<;列表>;

C# a<;列表>;,c#,list,C#,List,我有以下错误 CS0053不一致的可访问性:属性类型“List”的可访问性低于属性“DataStorage.deKoers” 这个问题与其他职位类似;但我无法找到合适的解决方案: 类DataStorage具有公共访问修饰符 排除deLijst或deKoers上的公共修饰符会使它在这个类之外不可访问(我想访问它们) 从DataStorage类中删除public修饰符可以解决错误消息,但会使属性无法从任何其他位置访问 我怀疑这份名单起到了意想不到的作用;因为它与“MyText”属性一起工作 Da

我有以下错误

CS0053不一致的可访问性:属性类型“
List
”的可访问性低于属性“
DataStorage.deKoers

这个问题与其他职位类似;但我无法找到合适的解决方案:

  • 类DataStorage具有公共访问修饰符
  • 排除deLijst或deKoers上的公共修饰符会使它在这个类之外不可访问(我想访问它们)
  • 从DataStorage类中删除public修饰符可以解决错误消息,但会使属性无法从任何其他位置访问
我怀疑这份名单起到了意想不到的作用;因为它与“MyText”属性一起工作

DataStorage instStorage = new DataStorage();
private void LadenInventarisVanDisk()
    {
        var x = instStorage.MyText;
        Console.WriteLine(x.ToString() );

    }


namespace Storage
{
    public class DataStorage
    {
        /* this works fine*/ 
        private string _myText = "text to save" ;
        public string MyText
        {
            get { return _myText; }
            set { _myText = value; }
        }

        private List<Inventaris>  _deLijst;

        /* adding public generate the accessible error*/
        public List<Inventaris> DeLijst
        {
            get { return _deLijst; }
            set { _deLijst = value; }
        }

        private List<Koers> _deKoers;
        /* excluding the public means i cannot call this property from another location */
        List<Koers> deKoers
        {
            get { return _deKoers; }
            set { _deKoers = value; }
        }
    }
}
DataStorage instStorage=newdatastorage();
私有void ladeningentarisvandisk()
{
var x=instStorage.MyText;
Console.WriteLine(x.ToString());
}
名称空间存储
{
公共类数据存储
{
/*这很好用*/
私有字符串\u myText=“要保存的文本”;
公共字符串MyText
{
获取{return\u myText;}
设置{u myText=value;}
}
私人名单;
/*添加public将生成可访问错误*/
公开名单
{
获取{return\u deLijst;}
设置{u deLijst=value;}
}
私人名单;
/*排除公众意味着我不能从其他位置调用此属性*/
德克奥尔名单
{
获取{return\u deKoers;}
集合{u deKoers=value;}
}
}
}

列表的可访问性取决于给定
T
的可访问性,因此,您的类
Koers
Inventaris
必须可以公开访问
列表答案可能是类
Inventaris
和/或
Koers
比公共更难访问(类的默认可访问性是
internal
(如果未嵌套)和
private
(如果嵌套)。两者都比public更具限制性,并且会引发错误)。解决此问题的一个好方法是始终显式地为所有内容编写访问级别-它使此类错误更容易查看

这似乎很奇怪-这是
列表
中的常规类还是您的代码中的自定义类?通常,如果
List
是私有或内部的自定义属性,则我希望看到此错误,这意味着您的公共属性可以从程序集外部看到,但
List
类无法看到。正常的错误:使用System.Collections.Generic;没有特殊的技巧。什么是科尔斯和发明家?我假设他们是班级。如果是这样的话,那么将它们设为公共类,然后将属性设为public deKoersAh,我被您的错误消息弄糊涂了,您的错误消息已经被破坏,删除了泛型参数,并且完全忘记了错误消息是如何工作的!我想,因为错误消息刚刚提到了
List
,所以它一定与此相关。请小心使用代码标记(在文本周围加上一个反勾号),以免泛型参数被解释为HTML!我肯定在名单上。问题确实是底层的类Koers和Inventaris不是公共的。你的第一句话不太正确。它们必须是公共的,才能由公共财产归还。你可以有一个不太显眼的财产(如私人财产),它们将是有效的。关键是属性不能比它返回的对象更可见,在本例中,
列表
仅与
T
一样可见。
public class Koers
{
    //Class code here
}

public class Inventaris
{
    //Class code here
}