繁体   English   中英

OOP C#为什么我的物品为公开物品时出现保护等级错误

[英]OOP c# Why do I get a protection level error when my item is public

public partial class Form1 : Form
{
    Elev x;
    ArrayList listaStudenti;
    ListViewItem itm;

    public Form1()
    {
        InitializeComponent();
        listaStudenti = new ArrayList();
        x=new Elev();         

    }
}

public class Elev
{
    public String nume;
    public int varsta;

    Elev(string _nume, int _varsta)
    {
        this.nume = _nume;
        this.varsta = _varsta;

    }
}

错误1'pregatiret.Elev.Elev(string,int)'由于其保护级别c:\\ users \\ marius \\ documents \\ visual studio 2012 \\ Projects \\ pregatiret \\ pregatiret \\ Form1.cs 26而无法访问

您的类Elev的构造函数没有任何访问说明符。 它被视为private 指定public访问说明符。

public Elev(string _nume, int _varsta)
{
}

请参阅: 访问修饰符(C#编程指南)

类成员,包括嵌套的类和结构,可以是公共的,受保护的内部,受保护的,内部的或私有的。 默认情况下 ,类成员和结构成员(包括嵌套的类和结构)的访问级别是私有的

如果目标是.Net Framework 2.0或更高版本,则应考虑使用List<T>而不是ArrayList

您的构造函数不是public ,而是私有的:

Elev(string _nume, int _varsta)
{
    this.nume = _nume;
    this.varsta = _varsta;

}

C#中的默认访问修饰符为private。 你自找的:

public Elev(string _nume, int _varsta)
{
    this.nume = _nume;
    this.varsta = _varsta;

}

顺便说一句,没有充分的理由再使用ArrayList ,除非您绝对必须与某些旧的API进行交互。

您的构造函数是private ,应该将其public

public Elev(string _nume, int _varsta)
{
    this.nume = _nume;
    this.varsta = _varsta;

}

Elev()也需要公开

这是一个私有构造函数,因此无法访问

public Elev()...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM