0

次のシグネチャを持つメソッドがあります。

public void SomeMethod(int SomeInt, List<long> SomeListOfLongs)

ある時点で、このメソッドを呼び出していますが、コードは次のようになります。

int TheInt = 2;
long TheLong1 = 3;
long TheLong2 = 4;

long のリストを作成し、メソッドを 1 ステップで呼び出したいと思います。私はこれを試しました:

SomeMethod(TheInt, new List<long>(TheLong1, TheLong2));

呼び出し自体で直接新しいリストを作成する必要を回避する方法はありますか?

ありがとう。

4

3 に答える 3

1

いいえ。新しいリストを作成します。ただし、問題が発生することはありません。

メソッドを制御できる場合は、署名を次のように変更できます。

public void SomeMethod(int someInt, params long[] someArrayOfLongs)

次に、次のコードを使用してメソッドを呼び出すことができます。

SomeMethod(TheInt, TheLong1, TheLong2);
于 2013-02-08T16:57:52.017 に答える
0
    private void Form1_Load(object sender, EventArgs e)
    {
        call(1, new List<long> { 1, 2, 3, 4 });
    }
    void call(Int32 i,List<long> l)
    {
        MessageBox.Show((l[0] + l[1] + l[2] + l[3]).ToString());
    }



       i tried this and working properly so use this code too pass the List object.....
于 2013-02-08T17:33:31.190 に答える
0

実際、私はコードをいじっていて、それが可能であることがわかりました:

SomeMethod(TheInt, new List<long>() { TheLong1, TheLong2 });
于 2013-02-08T17:09:31.703 に答える