7
votes

Qu'est-ce que vous utilisez (.....) {...} signifie

DUPLICATES possibles:

Utilisation de la déclaration en utilisant C #
Quel est le C # à l'aide du bloc et pourquoi dois-je l'utiliser?

se demandant simplement ce que cela signifie? J'ai vu beaucoup de tutoriels en ligne qui ont la syntaxe: xxx

pourquoi est-il utilisé? J'ai essayé de chercher google, mais il propose le mot-clé "Utilisation" utilisée pour inclure les fichiers DLL et autres.


8 commentaires

Voir la section 8.13 de la spécification C #.


Voir cette réponse: Stackoverflow.com/questions/ 614959 / ...


Généralement, lorsque vous recherchez une réponse de ce qui est au mot clé, la spécification de la langue est beaucoup plus efficace que Google. Juste dire.


Vous pouvez également essayer une recherche rapide ici. Vous auriez trouvé que vous avez créé une question en double.


Zano: Cela pourrait ne pas l'avoir aidé beaucoup ici, selon qu'il connaissait ce qu'il cherchait. En C #, le mot-clé "en utilisant" a deux significations complètement différentes.


Je doute que la plupart des développeurs réalisent même la spécification C # existe.


Vient de voter pour rouvrir. La question est similaire à d'autres questions mais pas de duplication exacte, car elle traite de la raison pour laquelle l'utiliser.


Juste nommé pour rouvrir à nouveau, car d'autres questions n'ont pas de réponse correcte en ce qui concerne le code généré (en particulier, l'utilisation de Idisposable.Dispose au lieu de Dispose Directement sur la classe, qui peut être différent et la manipulation de NULL.


8 Réponses :


4
votes

Le en utilisant ne fait que demander au compilateur d'écrire du code qui appellera la méthode Disposer sur la variable que vous êtes en utilisant . Seuls les types qui implémentent «Idisposables» peuvent être utilisés avec à l'aide de déclarations .

Dans votre exemple, CMD2 sera disposé lorsque le code dans la {} termine.


1 commentaires

Ok, je comprends ça, mais pourquoi est-il libellé comme ça? Dans mon esprit, en utilisant ne transmet pas hey compilateur s'il vous plaît nettoyer après moi?



2
votes

"Définit une portée, en dehors de laquelle un objet ou des objets sera disposé"
Voir Utilisation de la déclaration


0 commentaires

33
votes

Le à l'aide de code> instruction xxx pré>

est le sucre syntaxique pour le code similaire à celui suivant: p>

using(var a = new class())
using(var b = new class())
using(var c = new class())
using(var d = new class())
{
    ...
}


4 commentaires

La clé est "Vous devrez attendre que le collecteur des ordures libère les ressources conservées." +1


Lorsque vous laissez un en utilisant le bloc , iDisposable.Dispose sera appelé. Cela peut être différent de la méthode de jettement définie de votre objet si vous avez également défini Idisposable.Disposez explicitement.


Merci de modifier la mise en place de la déclaration de déclaration et d'initialisation de la variable avant l'essai. Supprimé mon commentaire pointant sur la faille.


+1 Je ne connaissais pas le tour de la syntaxe en cascade.



2
votes

en utilisant est appliqué sur des objets qui implémentent Idisposable . Il garantit que, lors de la sortie du bloc à l'aide du bloc (normalement, ou via une exception, ou autre), l'objet jetable ''s> Dispose est appelé.


0 commentaires

0
votes

Utiliser l'instruction définit une portée, qu'en dehors de celui-ci, l'objet ou les objets sera disposé.


0 commentaires

0
votes

Utilisation est une façon cool de nettoyer les ressources, il est équivalent à essayer {} Catch {} enfin {Disposer}. Efficace C # a un élément sur cela et je parie que vous voulez plus de 10 réponses similaires.

http://www.amazon.com/effective -Pécurie-façons-améliorer-votre / dp / 0321245660


0 commentaires

0
votes

Le à l'aide de la relève définit une portée dans laquelle utiliser un objet qui implémente l'interface Idisposable. L'objet sera nettoyé une fois que le bloc est sorti. Voir:

http://msdn.microsoft.com/en-us/library /yh598w02.aspx


1 commentaires

toujours un qui implémente idisposable



0
votes

voir http://msdn.microsoft.com /en-us/library/yh598w02(vs.80).aspx

L'utilisation de l'instruction encapsule des variables à l'intérieur dans une portée. Lorsque l'exécution quitte l'utilisation du bloc, tous les objets à l'intérieur sont disposés à partir de la mémoire. Vous le verrez peut-être avec des connexions DB afin que lorsque l'utilisation du bloc sort, les ressources allouées à cette connexion sont nettoyées et fermées.


0 commentaires