Как лучше всего использовать строковые функции и изменения в одной строке?

StackOverflow https://stackoverflow.com/questions/954151

Вопрос

Каким должен быть лучший способ написания кода:

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", "")

Или 1-2 не имеют значения?

Это было полезно?

Решение

Это все одно и то же.Пытаться

Path.GetFileNameWithoutExtension(Request.Path)

Другие советы

Все три в основном одинаковы.

Помните, что строки неизменяемы.Каждый раз, когда вы вызываете метод для строки, он выделяет новый строковый объект, поэтому вызов Remove() создает новый объект, который затем используется для вызова Replace().

1 и 2 по сути идентичны.#3 немного отличается, потому что вы используете 3 отдельные переменные, поэтому вы сохраняете ссылки на эти строки, чтобы их можно было использовать позже.Сборщик мусора должен знать, что делать со всеми тремя примерами, и обрабатывать их примерно одинаково, независимо от того, сохраняете ли вы промежуточные строки как переменные или нет.

Я бы использовал № 2 просто потому, что в нем меньше строк кода и он не ухудшает читабельность, но это все равно довольно короткий фрагмент кода.

Эти вызовы могут вызывать исключения.Для игрушечного кода можно не проверять, но после того, как вы получите путь, вам следует проверить String.NullOrEmpty и длину, прежде чем вызывать Remove.Вот почему я бы избегал №2.В остальном вариант №1 выглядит чище, если только вам не нужно использовать промежуточные значения (текущий как путь и текущий2) где-то еще в методе.

Строки в .Net неизменяемы, поэтому вы получите одинаковую производительность от всех этих методов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top