J'ai le bit de code suivant:problème avec le constructeur de struct (compilateur hurle que je n'initialise pas entièrement toutes les auto-propriétés de la struct)
public struct Interval
{
public double Min { get; set; }
public double Max { get; set; }
public Interval(double min = double.MinValue, double max = double.MaxValue)
{
Min = min;
Max = max;
}
}
Le compilateur se plaint que
Le champ de support pour la propriété implémentée automatiquement doit être entièrement affecté avant que le contrôle ne soit renvoyé à l'appelant. Envisagez d'appeler le constructeur par défaut à partir d'un constructeur initialiseur.
Ce qui est quelque chose que je ne comprends pas, puisque mon constructeur initialise complètement les valeurs de cette structure. N'est-ce pas?
Wow, c'est une indentation confuse. Cela donne l'impression que le corps est associé à 'this()' (ce n'est pas le cas). –
Oh Seigneur, downvoting réponses correctes à cause de l'indentation non standard? Quel étourdi. –
@Ben Voigt: Vraiment? Quiconque connaît la syntaxe de chaînage des constructeurs C#, je pense, lirait correctement ceci. Le fait de mettre l'accolade sur la ligne suivante change-t-il vraiment quelque chose? – jason