C# C错误CS0052,可访问性不一致
当我试图编译以下代码时,我得到一个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
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修饰符,并始终在行首指定它们。这将有助于将来调试此类问题。