I am reading Effective C# by Bill Wagner. In Item 14 - Minimize Duplicate Initialization Logic, he shows the following example of using the new opt
There's nothing to stop you from defining your own constant for the empty string if you really want to use it as an optional parameter value:
const string String_Empty = "";
public static void PrintString(string s = String_Empty)
{
Console.WriteLine(s);
}
[As an aside, one reason to prefer String.Empty
over ""
in general, that hasn't been mentioned in the other answers, is that there are various Unicode characters (zero-width joiners, etc.) that are effectively invisible to the naked eye. So something that looks like ""
isn't necessarily the empty string, whereas with String.Empty
you know exactly what you're using. I recognise this isn't a common source of bugs, but it is possible.]