ArrayList в C # - PullRequest
       11

ArrayList в C #

2 голосов
/ 14 апреля 2009

Можем ли мы передать ArrayLists в качестве аргументов методам в C #?

Ответы [ 4 ]

18 голосов
/ 14 апреля 2009

Абсолютно. Тем не менее, вы редко должны. В эти дни вы должны почти всегда использовать универсальные типы, такие как List<T>.

Кроме того, при объявлении параметров метода стоит использовать интерфейсы там, где это возможно. Например, если у вас был такой метод:

public void SomeMethod(ArrayList list)

тогда любой, кто его называет, вынужден использовать ArrayList. Они не могут использовать List<T>, даже если хотят. Если, с другой стороны, вы объявляете свой метод как:

public void SomeMethod(IList list)

тогда они могут использовать дженерики, даже если ваш код не знает о них.

5 голосов
/ 14 апреля 2009

Конечно, почему бы и нет:

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

Но, как отметил Джон С., использование интерфейсов предпочтительнее, чем жестко закодированных типов.

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

См. Также :

1 голос
/ 14 апреля 2009

да, вы можете.

0 голосов
/ 14 апреля 2009

Любой тип может быть передан в качестве аргумента метода. Будь то абстрактный, или интерфейс, или тип значения, или что-то еще.

Джон Скит упомянул об использовании интерфейсов. Да, это хорошо, но есть небольшая ошибка - вы не можете легко перейти от этого метода к его использованию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...