1

おそらく私が修正できない本当に単純な問題です-私はC#から始めており、たとえばgetter/setterメソッドを使用して配列に値を追加する必要があります:

public partial class Form1 : Form
{
    string[] array = new string[] { "just","putting","something","inside","the","array"};


    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Array = "gdgd";
    }

    public string[] Array
    {
        get { return array; }
        set { array = value; }
    }
}

}

4

3 に答える 3

10

これは決してうまくいきません:

Array = "gdgd";

stringこれは、プロパティに値を代入しようとしていstring[]ます。いずれにせよ、配列内の要素を追加または削除することはできないことに注意してください。要素が作成されるとサイズが固定されるためです。おそらく、List<string>代わりにa を使用する必要があります。

public partial class Form1 : Form
{
    List<string> list = new List<string> { 
        "just", "putting", "something", "inside", "the", "list"
    };    

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        List.Add("gdgd");
    }

    public List<string> List
    {
        get { return list; }
        set { list = value; }
    }
}

とにかく、パブリック プロパティを持つことは、同じクラス内からアクセスしているため、ここでは無関係であることに注意してください。フィールドを使用するだけです。

private void button1_Click(object sender, EventArgs e)
{
    list.Add("gdgd");
}

また、このような「些細な」プロパティについては、自動的に実装されたプロパティを使用できることに注意してください。

public partial class Form1 : Form
{
    public List<string> List { get; set; }

    public Form1()
    {
        InitializeComponent();
        List = new List<string> { 
            "just", "putting", "something", "inside", "the", "list"
        };    
    }

    private void button1_Click(object sender, EventArgs e)
    {
        List.Add("gdgd");
    }
}
于 2013-08-12T14:50:06.690 に答える
1

set メソッド内で、特定の配列の場所に追加できるようにコードを追加する必要があります。配列を送信する場合を除きます。その場合は、機能するはずです。

文字列を送信する場合は、配列の場所を指定する必要があります。

Array[index] = "gdgd"

そうしないと、配列ではなく文字列変数に代入しているように見えます

于 2013-08-12T14:50:41.120 に答える
0

リストを使用して値を保持します。配列を返す必要がある場合は、List.ToArray() を使用します。

于 2013-08-12T14:50:55.043 に答える