3

次の単純なコードで何が問題なのかわかりません。リストを取得してデータグリッドビューに表示するだけです。これは私が得るエラーです:

エラー 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 に答える