Question

Quelle devrait être la meilleure façon d'écrire du code:

1)

Dim current = Request.Path
current = current.Remove(0, 1)
current = current.Replace(".aspx", "")

2)

Dim current = Request.Path.Remove(0, 1).Replace(".aspx", "")

3)

Dim current = Request.Path
Dim current2 = current.Remove(0, 1)
Dim current3 = current.Replace(".aspx", "")

Ou 1-2 ne font pas la différence?

Était-ce utile?

La solution

Ce sont tous les mêmes. Essayez

Path.GetFileNameWithoutExtension(Request.Path)

Autres conseils

Les trois sont fondamentalement les mêmes.

Rappelez-vous les chaînes sont immuables. Chaque fois que vous appelez une méthode sur une chaîne, elle alloue un nouvel objet chaîne, afin d'appeler Remove() crée un nouvel objet, qui est ensuite utilisé pour appeler Replace().

1 et 2 sont essentiellement identiques. # 3 est un peu différent parce que vous utilisez 3 variables distinctes, donc vous tenez sur les références à ces chaînes afin qu'ils puissent être utilisés plus tard. Le garbage collector doit savoir quoi faire avec les 3 exemples et les gérer à peu près la même mais, si vous stockez les chaînes intermédiaires comme variables ou non.

Je voudrais utiliser # 2, tout simplement parce qu'il est moins de lignes de code et ne Sacrafice pas la lisibilité, mais il est encore un peu assez peu de code.

Ces appels peuvent lancer des exceptions. Pour le code de jouet, il est normal de ne pas vérifier mais, une fois que vous obtenez le chemin, vous devriez vérifier contre String.NullOrEmpty et la longueur avant d'appeler sur Supprimer. Alors, voilà pourquoi je voudrais éviter # 2. A part cela, # 1 semble plus propre à moins que vous devez utiliser ailleurs les valeurs intermédiaires (en cours comme le chemin et Courant2) dans la méthode.

Les chaînes sont immuables en .Net et vous obtiendrez les mêmes performances de toutes ces méthodes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top