Les développeurs de classes d’utilitaires .NET les plus utiles ont tendance à réinventer plutôt qu’à réutiliser

J’ai lu récemment cet article de Phil Haack ( Les développeurs des classes d’utilitaires .NET les plus utiles ont tendance à se réinventer plutôt que réutiliser ) de l’année dernière et j’ai pensé voir si quelqu’un pouvait append quelque chose à la liste.

Les gens ont tendance à utiliser ce qui suit, qui est laid et qui échoue:

ssortingng path = basePath + "\\" + fileName; 

Manière meilleure et plus sûre:

 ssortingng path = Path.Combine(basePath, fileName); 

J’ai également vu des gens écrire une méthode personnalisée pour lire tous les octets du fichier. Celui-ci est très pratique:

 byte[] fileData = File.ReadAllBytes(path); // use path from Path.Combine 

Comme TheXenocide l’a souligné, il en va de même pour File.ReadAllText() et File.ReadAllLines()

Ssortingng.IsNullOrEmpty()

 Path.GetFileNameWithoutExtension(ssortingng path) 

Renvoie le nom de fichier de la chaîne de chemin d’access spécifiée sans l’extension.

 Path.GetTempFileName() 

Crée un fichier temporaire de zéro octet portant un nom unique sur le disque et renvoie le chemin complet de ce fichier.

La classe System.Diagnostics.Stopwatch .

Ssortingng.Format.

Le nombre de fois que j’ai vu

 return "£" & iSomeValue 

plutôt que

 return Ssortingng.Format ("{0:c}", iSomeValue) 

ou des personnes qui apposent des signes de pourcentage – des choses comme ça.

Enum.Parse ()

Essayer de savoir où mes documents vivent sur l’ordinateur d’un utilisateur. Utilisez simplement ce qui suit:

 ssortingng directory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); 

Je devais télécharger certains fichiers récemment dans une application Windows. J’ai trouvé la méthode DownloadFile sur l’object WebClient:

  WebClient wc = new WebClient(); wc.DownloadFile(sourceURLAddress, destFileName); 

Ssortingng.Join () (cependant, presque tout le monde connaît ssortingng.Split et semble l’utiliser à toutes les chances …)

Codage en dur d’un / dans une chaîne de manipulation de répertoire en utilisant:

 IO.Path.DirectorySeparatorChar 

La classe SsortingngBuilder et en particulier la méthode AppendFormat .

PS: Si vous recherchez la mesure des performances des opérations de type Ssortingng: SsortingngBuilder vs. Ssortingng / Fast Ssortingng Operations avec .NET 2.0

 Environment.NewLine 

Au lieu de générer un nom de fichier avec un Guid, utilisez simplement:

 Path.GetRandomFileName() 

Beaucoup de nouvelles fonctionnalités de Linq semblent assez inconnues:

Any() & All()

 if( myCollection.Any( x => x.IsSomething ) ) //... bool allValid = myCollection.All( x => x.IsValid ); 

ToList(), ToArray(), ToDictionary()

 var newDict = myCollection.ToDictionary( x => x.Name, x => x.Value ); 

First(), FirstOrDefault()

 return dbAccessor.GetFromTable( id ). FirstOrDefault(); 

Where()

 //instead of foreach( Type item in myCollection ) if( item.IsValid ) //do stuff //you can also do foreach( var item in myCollection.Where( x => x.IsValid ) ) //do stuff //note only a simple sample - the logic could be a lot more complex 

Toutes les petites fonctions vraiment utiles que vous pouvez utiliser en dehors de la syntaxe Linq.

  • Utiliser l’atsortingbut DebuggerDisplay au lieu de ToSsortingng () pour simplifier le débogage.
  • Enumerable.Range
  • Tuples de FSharp.Core!

System.Text.RegularExpressions.Regex

Voir Classes de bibliothèques de classes de base .NET masquées

input.StartsWith("stuff") au lieu de Regex.IsMatch(input, @"^stuff")

Pour tout ce qu’il est caché sous l’espace de noms Microsoft.VisualBasic, TextFieldParser est en fait un parsingur de csv très agréable. Je vois beaucoup de gens soit rouler leurs propres (mal) ou utiliser quelque chose comme la belle bibliothèque Fast CSV sur Code Plex, sans même savoir que cela est déjà intégré dans la structure.

Des fichiers.

 using System.IO; File.Exists(FileNamePath) Directory.Exists(strDirPath) File.Move(currentLocation, newLocation); File.Delete(fileToDelete); Directory.CreateDirectory(directory) System.IO.FileStream file = System.IO.File.Create(fullFilePath); 

System.IO.File.ReadAllText vs écriture logique en utilisant un StreamReader pour les petits fichiers.

System.IO.File.WriteAllText vs logique d’écriture à l’aide d’un StreamWriter pour les petits fichiers.

Beaucoup de personnes semblent aimer parcourir manuellement un fichier XML pour trouver quelque chose plutôt que d’utiliser XPathNaviagator.

La plupart des gens oublient que Directory.CreateDirectory () se dégrade gracieusement si le dossier existe déjà, et l’emballe avec un appel inutile, si (! Directory.Exists (….)).

mySsortingng.Equals (anotherSsortingng)

et les options, y compris celles spécifiques à la culture.

Je parie qu’au moins 50% des développeurs écrivent quelque chose comme: if (s == “id”) {…}

Path.Append est toujours oublié dans les choses que j’ai vues.