Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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# C错误CS0052,可访问性不一致_C# - Fatal编程技术网

C# C错误CS0052,可访问性不一致

C# C错误CS0052,可访问性不一致,c#,C#,当我试图编译以下代码时,我得到一个CS0052错误: struct mp3 { public int ID, MBSize; public string Make, Model, Price; public mp3(int ID, int voorraad, int MBSize, string Make, string Model, string Price) { this.ID = ID; this.MBSize = MBSi

当我试图编译以下代码时,我得到一个CS0052错误:

struct mp3
{
    public int ID, MBSize;
    public string Make, Model, Price;

    public mp3(int ID, int voorraad, int MBSize, string Make, string Model, string Price)
    {
        this.ID = ID;
        this.MBSize = MBSize;
        this.Make = Make;
        this.Model = Model;
        this.Price = Price;
    }
}

public class Acess
{
    static public List<mp3> mp3List = new List<mp3>();

    static public void laadMP3()
    {
        // ...
    }
}
错误1:辅助功能不一致:字段类型 “System.Collections.Generic.List”更少 可访问字段“SoundSharp\uuuuuuuuuu opdracht\u3.access.mp3List”


我认为问题是struct mp3应该声明为public您有一个public List

我认为问题是struct mp3应该声明为public您有一个public List

默认情况下,结构和类是内部的,除非它们嵌套在其他类型中,在这种情况下,默认值是private,所以你不能把它当作公共财产。将结构公开,您应该可以:

public struct MP3
{
请注意,我还将MP3大写,以遵循普遍接受的.NET。默认情况下,结构和类是内部的,除非它们嵌套在其他类型中,在这种情况下,默认值是私有的,因此不能将其用作公共属性。将结构公开,您应该可以:

public struct MP3
{

请注意,我还将MP3大写,以遵循普遍接受的.NET。

更具体地说,您不能有一个公共字段来聚合一种较低可访问性的类型,默认情况下是私有的。这就产生了错误。@LordTakkera实际上,类型不能是私有的。它们要么是公共的,要么是内部的。但这是一个细节,你的观点是正确的。@LordTakkera internal是无嵌套类型的默认值。这是绝对正确的。私有类型对任何人都没有多大用处,不是吗?更具体地说,你不能有一个公共字段来聚合一种低可访问性的类型,默认情况下,私有类型是。这就产生了错误。@LordTakkera实际上,类型不能是私有的。它们要么是公共的,要么是内部的。但这是一个细节,你的观点是正确的。@LordTakkera internal是无嵌套类型的默认值。这是绝对正确的。私有类型对任何人都没有多大用处,是吗?尝试使用一致的方法访问修饰符,例如始终指定一个私有、受保护、公共、内部修饰符,并始终在行的开头指定它们。这将有助于将来调试此类问题。请尝试使用一致的方法访问修饰符,例如始终指定一个private、protected、public、internal修饰符,并始终在行首指定它们。这将有助于将来调试此类问题。