Appreciate il y a eu une question à ce que je vous demande, mais pas tout à fait comme ici. J'ai vérifié le? opérateur et je suis tombé sur le scénario suivant. La situation est la suivante:une propriété annulable après un contrôle nul-condition d'objet parent
internal class Dog
{
public int? Age { get; set; }
}
contrôles dans le code principal sont les suivantes:
Dog d2 = new Dog() { Age = 10 };
int age1 = d2.Age.Value; // compiles okay
int age2 = d2?.Age.Value; // CS0266
Je voudrais savoir pourquoi la ligne de code avec âge3 demande un casting explicite. d2.Age étant de type int? et Age.Value étant de type int ne varie pas entre les deux utilisations.
Vous voulez dire null conditionnelle? Je n'ai pas utilisé ?? dans les lignes de code. Cela dit, l'erreur du compilateur disparaît lorsque j'utilise d2? .Age avec des crochets. – MuKa
Vous avez raison. C'est l'opérateur null-conditionnel. –
Ce n'est pas une erreur de compilation. C'est une erreur de codage signalée par le compilateur. –