[英]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.