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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top