Question

Quand vous étiez enfant, avez-vous jamais demandé à vos parents comment épeler quelque chose et ils vous dit d'aller chercher le haut? Ma première impression était toujours « bien si on pouvait le chercher, je ne reviendrai pas besoin d'aide épelant ». (Ouais ouais je sais phonétiques)

... de toute façon, je regardais juste un code et j'ai trouvé un exemple comme:

 txtbx.CharacterCasing = (checkbox.Checked) ? CharacterCasing.Upper : CharacterCasing.Normal;

Je peux comprendre ce que cette opération fait, mais évidemment, je ne peux pas Google pour? ou:. et je ne peux pas les trouver lors de la recherche de « c # opérateurs », LINQ, Les expressions Lambda, etc. Je dois donc poser cette question idiote je peux aller commencer à lire à ce sujet

Quels sont ces opérateurs?

Était-ce utile?

La solution

?: est opérateur conditionnel , et la meilleure façon de le savoir est de demander ici!

condition ? first_expression : second_expression;
  

Si la condition est vraie, la première expression est évaluée et devient le résultat; si elle est fausse, la deuxième expression est évaluée et devient le résultat. Une seule des deux expressions est toujours évaluée.

Il est extrêmement utile pour une meilleure lisibilité des missions, lorsque l'expression entière est relativement courte:

string name = string.IsNullOrEmpty(user.Nickname) ? user.Fullname : user.Nickname

est beaucoup plus facile et plus rapide que:

string name = user.Fullname;
if(!string.IsNullOrEmpty(user.Nickname))
{
    name = user.Nickname;
}

Autres conseils

? est une déclaration en ligne-if. Cela signifie que si checkbox.Checked est true, alors CharacterCasing.Upper sera la valeur de l'expression, sinon CharacterCasing.Normal sera.

Il fonctionne comme ceci:

type value = condition ? trueValue : falseValue;

qui est une ligne instruction if. "?" est le code pour le cas « : ». est la pour le reste

? est également connu sous le nom

Par ailleurs, il arrive que vous pouvez chercher « : » sur wikipedia et trouver cela.

Notez qu'il est aussi parfois appelé « le » opérateur ternaire, puisque son seul opérateur ternaire (3-argument) dans les langues de type C.

BTW. Comme vous apprenez C # départ ?? opérateur Il est parfois bien meilleure alternative à:.

Considérez:

Console.WriteLine(user.LastName ?? "no last name provided");

vs:

Console.WriteLine(user.LastName != null ? user.LastName : "no last name provided");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top