As you know, it is not allowed to use the Array-initialisation syntax with Lists. It will give a compile-time error. Example:
List<int> test = { 1, 2, 3}
// At compilation the following error is shown:
// Can only use array initializer expressions to assign to array types.
However today I did the following (very simplified):
class Test
{
public List<int> Field;
}
List<Test> list = new List<Test>
{
new Test { Field = { 1, 2, 3 } }
};
The code above compiles just fine, but when run it will give a "Object references is not set to an object" run-time error.
I would expect that code to give a compile-time error. My question to you is: Why doesn't it, and are there any good reasons for when such a scenario would run correctly?
This has been tested using .NET 3.5, both .Net and Mono compilers.
Cheers.