The following code throws a NullReferenceException
:
internal class Foo
{
public Collection<string> Items { get; set; } // or List<string>
}
class Program
{
static void Main(string[] args)
{
new Foo()
{
Items = { "foo" } // throws NullReferenceException
};
}
}
Collection<string>
implements the Add()
method, and why is NullReferenceException is thrown?Items = new Collection<string>() { "foo" }
the only correct way to initialize it?You never instantiated Items
. Try this.
new Foo()
{
Items = new Collection<string> { "foo" }
};
To answer your second question: You need to add a constructor and initialize Items
over there.
internal class Foo
{
internal Foo()
{
Items = new Collection<string>();
}
public Collection<string> Items { get; private set; }
}