[ Полезный рекламный блок ]
Попробуйте свои силы в игре, где ваши навыки программирования на 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 | 


 Загрузка...
 Загрузка...






