Я бегу в выполнения NullReferenceException
исключение в следующем коде:элемент коллекции Интерфейс странное поведение во время инициализации объекта
public class Container
{
public IList<string> Items { get; set; }
}
class Program
{
static void Main(string[] args)
{
var container = new Container() { Items = {"Test"} };
}
}
Это логично, что compiller не удалось создать interaface инстанции, но я получил исключение во время выполнения, а не во время компиляции , Я смутился еще больше, когда я исследовал это поведение дальше:
var container = new Container() { Items = {} }; //Legal, Items is null after initialization
var container = new Container() { Items = { "Test" } }; //Legal, throws exception
container.Items = {}; //Illegal doesn't compile
container.Items = {"Test"}; //Illegal doesn't compile
Является ли это какое-то ошибка или я не понимаю? И я использую .NET Framework 4.0
Я всегда думал, что 'var container = new Container() {Items = {" Test "}}' создает коллекцию и добавляет элементы в коллекцию, я был неправ :( – Andrew