无法使用泛型列表填充数据视图

本文关键字:填充 数据 视图 列表 泛型 | 更新日期: 2023-09-27 18:05:09

我不明白下面的简单代码是什么问题。它所做的就是获取一个列表并在datagridview中显示它。这是我得到的错误:

错误1可访问性不一致:返回类型"System.Collections.Generic.List"是不是比方法更容易接近"WindowsFormsApplication10.Form1.FillGridView ()

另外,是否有一种方法来转换你的列表,数组列表等数据集类型?

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 )
    {
    }
}

无法使用泛型列表填充数据视图

你的方法需要是公共的吗?看起来您的学生类不是公共的,因此将它的列表返回给任何公共调用者都是不一致的。看起来,你的方法可以是私有的。

private List<Student> FillGridView()

您的Student类访问修饰符可能是non-public

对于类型为non-publicpublic方法没有意义。该方法如何在外部程序集上工作?

您可以将FillGridView访问修饰符更改为private

private List<Student> FillGridView ()

Access Modifiers阅读更多信息

From C# Language Specification

10.3.6组成类型

在成员声明中使用的类型称为该成员的组成类型。可能的成分类型是返回的常量、字段、属性、事件或索引器的类型方法或运算符的类型,以及方法的参数类型;索引器、操作符或实例构造函数。a的组成类型成员必须至少与成员本身具有同样的可访问性(§3.5.4)。