Comme vous le savez, il n'est pas permis d'utiliser la syntaxe d'initialisation des tableaux avec les listes. Cela entraînera une erreur de compilation. Exemple :
List<int> test = { 1, 2, 3}
// At compilation the following error is shown:
// Can only use array initializer expressions to assign to array types.
Cependant, aujourd'hui, j'ai fait ce qui suit (très simplifié) :
class Test
{
public List<int> Field;
}
List<Test> list = new List<Test>
{
new Test { Field = { 1, 2, 3 } }
};
Le code ci-dessus se compile très bien, mais lorsqu'il est exécuté, il donne une erreur d'exécution "Object references is not set to an object".
Je m'attendrais à ce que ce code donne une erreur de compilation. Ma question est la suivante : Pourquoi ne le fait-il pas, et y a-t-il de bonnes raisons pour qu'un tel scénario s'exécute correctement ?
Ce système a été testé en utilisant .NET 3.5, les compilateurs .Net et Mono.
A la vôtre.