Habituellement, je faisais quelque chose comme ça (juste un exemple): n'est pas préférable de faire juste: p> Mais je ne sais pas si dans cette brève syntaxe, toutes les ressources seront disposées (flux) ou uniquement xmltextreader? P> Merci d'avance pour votre réponse. P> P>
4 Réponses :
non; Cela ne garantit pas que le flux code> est disposé si le constructeur
xmltextreader code> jette une exception. Mais vous pouvez faire:
using (Stream xmlStream = client.OpenRead(xmlUrl))
using (XmlTextReader xmlReader = new XmlTextReader(xmlStream))
{
// use xmlReader
}
La première phrase est excellente (+1 pour cela) mais le reste, n'est-ce pas (et TomTom) juste du sucre syntaxique? C'est en fait identique au code d'origine, n'est-ce pas?
@Lazarus - il fait la même chose, mais (important), il arrête de nichier de pousser le code sur le côté droit de l'écran ;-p sous sérieux, nous encapsulons une seule unité ici, donc un niveau unique de Visual i> La nidification semble souhaitable.
Je n'ai pas réalisé que cela empêcherait l'indent, il fonctionne différemment à une instruction IF qui redevient même si vous omettez les supports pour des blocs à une seule ligne. J'ai appris quelque chose ... C'est une bonne journée;)
Quoi de dire (j'utilise ceci maintenant):
using (Stream xmlStream = client.OpenRead(xmlUrl)) using (XmlTextReader xmlReader = new XmlTextReader(xmlStream)) { ... }
La référence Documentation indique que l'objet à disposition doit être déclaré dans la déclaration en utilisant. Comme il n'y a pas de déclaration pour le flux, la méthode de jettera ne sera pas appelée.
Dans votre cas, vous pouvez ignorer le flux entièrement, cependant, et utiliser le constructeur de la textreader qui prend un paramètre URL. Le flux sous-jacent sera fermé lorsque le lecteur est disposé. P>
avec C # 8, vous pouvez vous débarrasser de même le niveau de nidification unique: interne, le compilateur crée un équivalent essayez d'attraper comme avec la version indentée et dispose du flux et du lecteur. À la fin du cadre de l'utilisation des variables, dans ce cas, à la fin de la méthode. P> Voir plus: p>
J'aime bien la première forme de déléniation - avec les crochets. Il est disposé correctement et est le plus maintenu à l'OMHO.