2009-04-14 50 views
2

我們可以將ArrayLists作爲參數傳遞給C#中的方法嗎?C#中的ArrayList#

+0

-1。你之前問過這個問題:http://stackoverflow.com/questions/746898/arraylist-in-session – 2009-04-14 11:02:46

回答

18

絕對。但是,你很少應該。這幾天你應該差不多總是使用泛型類型,如List<T>

此外,當聲明方法的參數時,在您可以的情況下值得使用接口。舉例來說,如果你有這樣的方法:

public void SomeMethod(ArrayList list) 

那麼任何人都稱其爲被迫使用ArrayList。即使他們想要,他們也不能使用List<T>。另一方面,如果你聲明你的方法爲:

public void SomeMethod(IList list) 

然後他們可以使用泛型,即使你的代碼不知道它們。

+0

我不完全同意喬恩,你不應該在公共接口上使用ArrayLists,儘管數組可能在內部使用(私人範圍)出於性能原因。 – 2009-04-14 05:40:47

1

是的,你可以。

0

任何類型都可以作爲方法的參數傳遞。不管是抽象的,還是接口,或者值類型,或者其他。

Jon Skeet提到使用接口。是的,但它有很小的缺陷 - 你無法輕鬆地從該方法導航到其使用。