Quale sarebbe il modo migliore per utilizzare le funzioni di stringa e l'alterazione su una sola corda?
-
11-09-2019 - |
Domanda
Quale dovrebbe essere il modo migliore per scrivere il codice:
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", "")
o 1-2 fanno alcuna differenza?
Soluzione
Questi sono tutti uguali. Prova
Path.GetFileNameWithoutExtension(Request.Path)
Altri suggerimenti
Tutti e tre sono fondamentalmente la stessa.
Ricordate le stringhe sono immutabili. Ogni volta che si chiama un metodo su una stringa, assegna un nuovo oggetto stringa, quindi chiamando Remove()
crea un nuovo oggetto, che viene poi utilizzato per chiamare Replace()
.
1 e 2 sono sostanzialmente identici. # 3 è un po 'diverso perché si utilizzano 3 variabili separate, in modo che stai aggrappandosi ai riferimenti a tali stringhe in modo che possano essere utilizzati in seguito. Il garbage collector dovrebbe sapere cosa fare con tutte e 3 esempi e gestirli o meno lo stesso però, se si memorizzano le stringhe come variabili intermedie oppure no.
Vorrei utilizzare 2 #, semplicemente perché è un minor numero di linee di codice e non Sacrafice la leggibilità, ma è ancora un abbastanza breve po 'di codice.
Queste chiamate possono generare eccezioni. Per il codice giocattolo va bene, non per controllare, ma, dopo che ottenete il percorso, si dovrebbe verificare contro String.NullOrEmpty e la lunghezza prima di chiamare Rimuovi. Quindi, è per questo che vorrei evitare # 2. Oltre a questo, # 1 sembra più pulita a meno che non è necessario utilizzare i valori intermedi (correnti come il percorso e corrente2) da qualche altra parte nel metodo.
Le stringhe sono immutabili in .Net in modo da otterrete le stesse prestazioni di tutti questi metodi.