Le point d'interrogation et du côlon dire dans l'énoncé? ça veut dire quoi?
Ce qui ne l' ? et du côlon veux dire?
((OperationURL[1] == "GET") ? GetRequestSignature() : "")
Dans la déclaration suivante...
string requestUri = _apiURL + "?e=" + OperationURL[0] + ((OperationURL[1] == "GET") ? GetRequestSignature() : "");
Vous devez vous connecter pour publier un commentaire.
C'est l'opérateur conditionnel expression.
Par exemple
Donc, si l'expression booléenne est vraie, la valeur hold "Alpha", sinon, il détient une "Bêta".
Pour un piège courant que les personnes entrent dans, voir cette question dans le C# balise wiki.
C'est le ternaire opérateur conditionnel.
Si la condition dans la parenthèse avant le
?
est vrai, il renvoie la valeur à gauche de la:
, sinon, la valeur à droite.C'est un opérateur ternaire, ou un court formulaire pour si autre chose.
état ? valeur si vrai : valeur si faux
Voici un lien pour plus d'informations sur le sujet
edit: lien corrigé
Dans le cas particulier que vous avez fournies, il est d'une cession conditionnelle. La partie avant le point d'interrogation (?) est une condition booléenne, et les pièces de chaque côté du signe deux-points (:) sont les valeurs à attribuer sur la base du résultat de la condition (côté gauche du côlon est la valeur pour la valeur true, côté droit est la valeur false).
peut être traduite:
Ceci est également connu comme le "inline " si", ou comme ci-dessus, l'opérateur ternaire.
https://en.wikipedia.org/wiki/%3F:
Il est utilisé pour réduire le code, mais il n'est pas recommandé d'utiliser un grand nombre de ces sur une seule ligne car il peut faire la mise à jour du code assez difficile.
Imaginez:
et vous pouvez aller sur un certain temps.
Il finit fondamentalement la même que celle de l'écriture:
Dans votre cas, "chaîne de requestUri = _apiURL + "?e=" + OperationURL[0] + ((OperationURL[1] == "GET") ? GetRequestSignature() : "");"
Peut aussi être écrit comme suit: (en omettant le reste, puisque c'est une chaîne de caractères vide)
ou comme ceci:
Selon votre préférence et le style de code votre patron vous dit d'utiliser.
Cela signifie que si "OperationURL[1]" évalue à "OBTENIR", puis de retour "GetRequestSignature()" else return "". Je devine "GetRequestSignature()" ici renvoie une chaîne de caractères. La syntaxe de l'ÉTAT ? A : B
fondamentalement, est un si-sinon où est retourné lorsque la CONDITION est vraie et B est renvoyé lorsque la CONDITION est fausse.