Краткий ответ
Из соображений производительности и читабельности всегда используйте второй подход (возвращение строкового литерала), если вам действительно не нужно форматирование или манипулирование строкой. Не только вы сохраняете циклы ЦП, но и память.
Пояснение
Первый пример (string.Format(...)
один), даже если он ничего не делал внутри (даже если это возможно), он все равно вернуть копию переданной строки. Это означает, что сборщик мусора будет собирать больше мусора позже во время выполнения программы. Давайте сделаем некоторые вычисления очень примитивным способом. Вы передаете строку "Hello World"
. Каждый символ этой строки представляет собой один байт, так что в общей сложности 11 байтов потраченной впустую памяти. Кажется незначительным, верно? Теперь представьте, что эта строка кода запускается 1 миллион раз. Теперь у вас есть 11 МБ мусора.
Второй пример просто возвращает строку без каких-либо других действий. Таким образом, мусор не генерируется.