Je suis confus avec la syntaxe de C#: à quoi sert "+ ="?signification de '+ ='
Répondre
a += 3
est le même que
a = a + 3
La syntaxe +=
peut être utilisé de différentes façons:
SomeEvent += EventHandler;
Ajoute un gestionnaire à un événement.
SomeVariable += 3;
équivaut à
SomeVariable = SomeVariable + 3;
Bonne réponse. J'aurais espacé sur l'aspect gestionnaire d'événement de cet opérateur, en sachant mieux. – Beska
L'aspect du gestionnaire d'événements est à peu près identique aux autres aspects; Tout ce qui se passe là est que l'objet event/delegate remplace l'opérateur +. A + = b est simplement du sucre syntaxique pour a = a + b. Voir http://msdn.microsoft.com/en-us/library/8edha89s.aspx, qui indique que "les opérateurs d'affectation ne peuvent pas être surchargés, mais + =, par exemple, est évalué en utilisant +, qui peut être surchargé." – technophile
@ Technophile: Mauvais. En dehors de la classe (ou toujours en C# 4.0), 'instance.Event + = handler' se compile en' instance.add_Event (gestionnaire); ' – SLaks
Ceci est appelé un opérateur composé. Ils sont communs à toutes les langues que je peux chose: Javascript, C, Java, PHP, .net, GL.
Comme tout le monde l'a dit, est une version abrégée de value = value + 3
.
Il y a plusieurs raisons à son utilisation. De toute évidence, il est plus rapide d'écrire, plus facile à lire et plus rapide pour repérer les erreurs. Le plus important, un opérateur composé est spécifiquement conçu pour ne pas exiger autant de calcul que l'équivalent value = value + 3
. Je ne suis pas tout à fait sûr pourquoi mais la preuve est primordiale. Créez simplement une boucle en bouclant par exemple 5 000 000 en ajoutant une valeur au fur et à mesure. Dans deux cas de test, je sais personnellement d'Actionscript, il y a une augmentation de vitesse d'environ 60% avec les opérateurs composés.
Vous avez également l'équivalent:
+=
: plus
-=
: soustraction
/=
: multiplication
*=
: multplication
%=
: module
et moins évidente:
++
: Plus un
--
: Moins un
Et la liste complète des opérateurs d'affectation de composés est ici: 'x + = y x - = y x * = y x/= y x% = y x & = y x | = y x^= y x << = y x >> = y' Copié [MSDN: C# opérateurs] (http://msdn.microsoft.com/en-us/library /6a71f45d.aspx). –
Remarque, il est pas nécessairement toujours équivalent.
pour les variables ordinaires, a+=a
est, en effet, équivalent à a=a+a
, et plus court !. Pour la variable impaire qui change d'état, pas tellement.
- 1. Signification de NSLog 10b?
- 2. Signification de trackbar
- 3. Signification de l'espace PermGen
- 4. Signification de Super?
- 5. fonction de rappel signification
- 6. Signification de cette déclaration?
- 7. La signification de ':' et '?'
- 8. Signification de -fold
- 9. Signification de SEQUENCE_NEXT_HI_VALUE
- 10. signification de 'z'?
- 11. Signification de -DHAVE_CONFIG_H dans makefiles
- 12. Signification de otool champ « caps »
- 13. signification de "vue fortement typée"
- 14. Signification de cette notation #pragma
- 15. Signification de: Array1: .word 00h20
- 16. Informix: La signification de point (.)?
- 17. la signification de l'objet allégé
- 18. postgresql execParams paramTypes signification?
- 19. signification du fichier include
- 20. Signification et définition xmlns = « »
- 21. Signification d'un opérateur **
- 22. Signification du suffixe U
- 23. Signification d'attente ((int *) 0)
- 24. Syntaxe de la syntaxe Bash - signification de "- @"
- 25. Quelle est la signification de ".. ::." en C#?
- 26. Signification de "ce" pour une struct (C#)
- 27. NHibernate: Signification des intercepteurs valeur de retour
- 28. Quelle est la signification de $ cette
- 29. Évaluation de la signification d'un score BLASTn?
- 30. Signification de colonne cachée dans le tableau?
Veuillez apprendre la signification du champ tags. – SLaks
S'il vous plaît également apprendre à épeler et à utiliser la grammaire. – Dom
Bonjour, ce site peut être un peu plus pointilleux que vos forums habituels mais l'effort mis pour poser des questions efficaces en vaut la peine. Vous obtenez plus de kilométrage à partir d'ici si vous tapez en anglais complet, fournissez un contexte spécifique à votre question et fournissez des exemples. – Extrakun