我们可以将 ArrayLists 作为参数传递给 C# 中的方法吗?
问问题
4450 次
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 回答