[ Полезный рекламный блок ]
Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.
Используйте то, что вы и ваша команда считаете наиболее удобным для чтения. Кому-то нравится более короткий вариант, кому-то с использование класса.
С точки зрения производительности и генерируемого кода разницы действительно нет. При тестировании производительности, они ходили туда-сюда между тем, кто из них быстрее, чем другой, и только на миллисекунды.
1 2 3 4 5 |
static void Main() { string s1 = ""; string s2 = String.Empty; } |
Если посмотреть на код за сценой, то тоже не видно никакой разницы. Единственная разница — в IL, где string.Empty использует опкод ldsfld, а «» — опкод ldstr, но это только потому, что string.Empty статична, и обе инструкции делают одно и то же. Если вы посмотрите на созданную сборку, она будет точно такой же.
Assembly code:
1 2 3 4 5 6 7 8 9 |
string s1 = ""; 00007FFBCC7996E3 mov rax,1F4B7802028h 00007FFBCC7996ED mov rax,qword ptr [rax] 00007FFBCC7996F0 mov qword ptr [rbp+28h],rax string s2 = String.Empty; 00007FFBCC7996F4 mov rax,1F4B7802028h 00007FFBCC7996FE mov rax,qword ptr [rax] 00007FFBCC799701 mov qword ptr [rbp+20h],rax |