3

我不明白以下简单代码有什么问题。它所做的只是获取一个列表并将其显示在 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 )
    {

    }
}
4

2 回答 2

2

你的方法需要公开吗?看起来您的学生课程不是公开的,因此将其列表返回给任何公开呼叫者都是不一致的。看起来,您的方法可以是私有的。

private List<Student> FillGridView()
于 2013-03-21T09:02:10.810 回答
0

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

public对于 .类型的方法没有意义non-public该方法如何对外部程序集起作用?

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

private List<Student> FillGridView ()

阅读更多信息Access Modifiers

C# Language Specification

10.3.6 成分类型

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

于 2013-03-21T09:12:49.013 回答