это понятно но как оно обнаружило что надо лист создать?
Ровно так же, как IDE смогла показать вам, что это IList? Вы же не удивляетесь откуда var в курсе про тип, который примёт переменная
А так, можете почитать это https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/classes-and-structs/object-and-collection-initializers
Мне кажется тут вопрос в том, почему IDE решила именно List создать, ведь IList и другие типы реализуют не IDE, конечно, выразился криво и сам
да, вопрос был в этом все же реализаций у Ilist много, поэтому удивительно, что оно работает
В чём состоит "угадывание" в подстановке List в месте, где нужен IList?
ну лично для меня не очевидно что {} это List по-моему это было угадывание
Как по мне, немного странно применять слово "угадывание" к языку со статической типизацией, но каждому своё =)
окей пускай будет "принятие решения на основании сведений, которые мне не кажутся достаточными"
Ну, вам показалось недостаточными. Компилятору - достаточными. На вкус и цвет, я вообще такой инициализацией списка не пользовался никогда - не доводилось
почему не массив, а именно список? ведь массивы базовее и по памяти лучше
вызови .Add у массива
Упадёт в рантайме же, нет?
Но вызвать-то можно!
А почему ты решил, что оно создало List? Покажи код.
Только если сделать explicit cast в IList.
Обсуждают сегодня