En utilisant ce code:C# Struct Constructor Générique
struct Foo<T1>
{
public T1 Item1 { get; private set; }
public Foo(T1 item1)
{
Item1 = item1;
}
}
je rencontre cette erreur:
Backing field for automatically implemented property 'Foo.Item1' must be fully assigned before control is returned to the caller. Consider calling the default constructor from a constructor initializer.
Ma question est, pourquoi est la propriété Item1
pas entièrement attribué après que le constructeur est appelé?
Editer: Changé set
à private set
parce que cette question n'a rien à voir avec la mutabilité.
Ne faites pas de structures mutables, s'il vous plaît. –
Pourquoi pas lui? Cela rend les choses beaucoup plus simples parfois, et peut améliorer les performances un peu dans certains cas de boucle. Quel est le problème avec les structures mutables? (Cela ne répond pas non plus à sa question.) – Mehrdad
@Lambert http://stackoverflow.com/questions/441309/why-are-mutable-structs-evil –