【问题标题】:C# Error CS0052, Inconsistent accessibilityC# 错误 CS0052,可访问性不一致
【发布时间】:2018-02-21 00:18:10
【问题描述】:

当我尝试编译以下代码时,出现 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___opdracht_3.Acess.mp3List”更容易访问

【问题讨论】:

  • 尝试使用一致的方法来访问修饰符,例如始终指定一个(私有、受保护、公共、内部)并始终在行首指定它们。这将有助于将来调试此类问题。

标签: c#


【解决方案1】:

我认为的问题是struct mp3应该声明为public(你有一个公共List&lt;mp3&gt;

【讨论】:

  • 更具体地说,您不能有一个公共字段来聚合一种较低可访问性的类型(私有是默认值)。这给出了错误。
  • @LordTakkera 实际上,类型不能是private。它们是publicinternal。但这是一个细节,你的观点是正确的。
  • @LordTakkera internal 是非嵌套类型的默认值。
  • 完全正确。 (私有类型对任何人都没有多大用处,对吧)?
【解决方案2】:

structs 和classes 默认为internal(除非它们嵌套在其他类型中,在这种情况下默认为private),因此您不能将其用作public财产。制作结构public,你应该没问题:

public struct MP3
{

请注意,我还将 MP3 大写以遵循公认的 .NET casing standards

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    相关资源
    最近更新 更多