Вы бы сделали это исключительно для удобства и удобочитаемости. Использование именованной константы вместо строкового литерала не будет иметь никакого влияния на производительность.
ремонтопригодность
Если у вас есть несколько мест в коде, которые требуют такой же строковый литерал, имея их все использовать те же именованной константы делает код намного более ремонтопригодны. Если вы когда-либо решаете, что вам нужно изменить значение строкового литерала, вам нужно только одно место, чтобы внести изменения.
читаемость
Даже если строка символов используется в одном месте, обеспечивая именованный константа может сделать код более читаемым.
Например, в следующем примере, какую версию вы считаете более понятной?
// string literals
int startIdx = someString.IndexOf("[");
int endIdx = someString.IndexOf("]");
// vs. named constants
int startIdx = someString.IndexOf(TAG_START);
int endIdx = someString.IndexOf(TAG_END);
Правильно подобранное имя для константы может сделать намерение кода более четким. Но ключ здесь в том, что вам нужно выбрать доброе имя. Слишком часто, я буду видеть вещи, как:
private const string ASTERISK = "*"; // very poor name
Это очень плохо выбрано постоянное название, которое не помогает читаемость один бит. Проблема в том, что он просто указывает содержимое строкового литерала, а вместо этого он должен сообщать, для чего используется строковый литерал.
По умолчанию они не являются 'const'. Вместо этого вы подразумеваете «непреложный»? –
Этот вопрос довольно широк. Вы говорите о струнных литералах? –
Строки, которые я вижу, всегда неизменны.Он сказал мне, что должен писать service.SomeStringManipulation (TEST_CONST); вместо service.SomeStringManipulation ("test"); –