2

ArrayListsを引数としてC#のメソッドに渡すことはできますか?

4

4 に答える 4

18

絶対。ただし、そうすることはめったにありません。最近では、ほとんどの場合、などのジェネリック型を使用する必要がありますList<T>

さらに、メソッドのパラメーターを宣言するときは、可能な場合はインターフェースを使用する価値があります。たとえば、次のようなメソッドがある場合:

public void SomeMethod(ArrayList list)

その後、それを呼び出す人は誰でも使用することを余儀なくされますArrayList。使いたくても使えませんList<T>。一方、メソッドを次のように宣言する場合:

public void SomeMethod(IList list)

そうすれば、コードがジェネリックを知らなくても、ジェネリックを使用できます。

于 2009-04-14T05:31:43.047 に答える
5

もちろん:

public void SomeMethod(ArrayList list)
{
    // your code here
}

しかし、Jon S.が述べたように、ハードコードされたタイプの代わりにインターフェースを使用することが推奨されます。

public void SomeMethod(IList list)
{
    // your code here
}

も参照してください

于 2009-04-14T05:29:09.357 に答える
1

はい、できます。

于 2009-04-14T05:29:07.577 に答える
0

メソッドの引数として任意のタイプを渡すことができます。抽象型、インターフェース、値型など。

Jon Skeetは、インターフェースの使用について言及しています。はい、それは良いことですが、小さな落とし穴があります-その方法からその使用法に簡単にナビゲートすることはできません。

于 2009-04-14T08:37:46.080 に答える