我不明白以下简单代码的问题是什么。它只需要一个列表并在datagridview中显示它。这是我得到的错误:
错误1可访问性不一致:返回类型 'System.Collections.Generic.List' 比方法更难获得 'WindowsFormsApplication10.Form1.FillGridView()'
另外,有没有办法将列表,arraylist等转换为数据集类型?
public partial class Form1 : Form
{
public Form1 ()
{
InitializeComponent ();
}
public List<Student> FillGridView ()
{
List<Student> l = new List<Student> ();
l.Add (new Student { Fname="bloke", Lname="lll", Contact=293489485});
l.Add (new Student { Fname = "dog", Lname = "assdf", Contact = 35345 });
l.Add (new Student { Fname = "mary", Lname = "sdff", Contact = 6456 });
l.Add (new Student { Fname = "john", Lname = "sdfsdf", Contact = 45656 });
return l;
}
private void Form1_Load ( object sender, EventArgs e )
{
dataGridView1.DataSource = this.FillGridView ();
}
private void button1_Click ( object sender, EventArgs e )
{
}
}
答案 0 :(得分:2)
您的方法是否需要公开?看起来您的学生班级不公开,因此将其列表返回给任何公共呼叫者是不一致的。从外观上看,您的方法可以是私有的。
private List<Student> FillGridView()
答案 1 :(得分:0)
您的Student
班级访问修饰符可能是non-public
。
对于public
类型的non-public
方法没有意义。 该方法如何适用于外部程序集?
您可以将FillGridView
访问修饰符更改为private
private List<Student> FillGridView ()
了解更多信息
10.3.6组成类型
成员声明中使用的类型称为 该成员的组成类型。可能的组成类型是 常量,字段,属性,事件或索引器的类型,返回值 方法或运算符的类型,以及方法的参数类型, 索引器,运算符或实例构造函数。 a的组成类型 成员必须至少与该成员本身一样易于访问(§3.5.4)。