2010-07-21 6 views

Répondre

6

Pas grand-chose ... (via Reflector)

[SecuritySafeCritical] 
public static StreamWriter CreateText(string path) 
{ 
    if (path == null) 
    { 
     throw new ArgumentNullException("path"); 
    } 
    return new StreamWriter(path, false); // append=false is the default anyway 
} 

Pour ce que ça vaut la peine si je préfère utiliser un fichier. * Méthodes d'usine parce que je pense qu'ils regardent plus propre et sont plus lisibles que de passer un tas de paramètres du constructeur Stream ou StreamWriter, car il est difficile de se rappeler quelles surcharges font quoi si vous ne regardez pas la définition.

En outre, la compilation JIT va presque certainement mettre en ligne l'appel de sorte que même la surcharge minuscule d'un seul appel de méthode supplémentaire ne sera probablement pas encourue.

+0

Microsoft est génial – Dinoo

+0

"Je pense qu'ils ont l'air plus propres" - Ouais, n'ont-ils pas été présentés parce que les gens ont trouvé les cours de Stream *** non intuitifs? Je me souviens vaguement de quelque chose dans un des livres de l'album d'Abrams sur la façon dont il pensait que le truc de Stream ** était si beau et choqué quand il regardait les développeurs essayer de travailler dessus et de ne pas pouvoir le comprendre facilement. – heisenberg

+0

Je suis sûr qu'ils sont là depuis le début. La classe Stream elle-même est un design assez élégant si vous me demandez. C'est un très bon exemple de la flexibilité du motif décorateur. Je n'aime pas utiliser explicitement les constructeurs. – Josh

Questions connexes