2014-11-22 3 views
0

Это может быть глупый вопрос, но может кто-нибудь объяснить мне, что делает ниже заявление делает:Использование нового оператора без присвоения любому

new List<string>() {"1","2"}; 

Я не назначая его никому. Таким образом, запись этого утверждения имеет смысл

+0

Вы правы, это не имеет смысла. Вы создаете новую коллекцию, но не имеете к ней ссылок, поэтому вы не сможете ее использовать после объявления. Можете ли вы объяснить больше о том, где вы его видели или что вы пытаетесь сделать? –

+2

Вы можете сделать что-то полезное с этим - 'new List () {" 1 "," 2 "}. ForEach (Console.WriteLine);' – Jonesopolis

+1

@GrantWinney Я просматриваю старый фрагмент кода, где я нашел это , Так что просто убедившись, не хватает ли какой-либо концепции;) – nbi

ответ

3

В этом случае это не имеет смысла. Вы правы. Вы создаете список, добавляете в него элементы, а затем забываете об этом списке.

В целом, это труднее сказать. Некоторые классы имеют конструкторы с побочными эффектами. Вы можете осмысленно построить такой класс, а затем не использовать созданный экземпляр, потому что этот побочный эффект - это все, что вам нужно в первую очередь. Например, предположим, что у вас есть собственный класс List и класс помощника ListItem. Предположим, что у вашего ListItem есть конструктор, который принимает List и гарантирует, что элемент списка попадает в этот список. В этом случае вы могли бы осмысленно написать new ListItem(list); без каких-либо других.

+0

Спасибо за объяснение – nbi

Смежные вопросы