In C# (and .NET generally), string literals are always interned to avoid duplication and so there can never be more than one instance of “”. If you look at the code for String.Empty it actual refers to “” in the background so, like @ilogico, I could never understand the reason why some people insisted on using String.Empty instead.
Similarly, in Kotlin, I can’t really see why:
if (s.isEmpty()) ....
is often considered superior to the more direct:
if (s == "") ...