I've got a one line method that resolves a null string to string.Empty which I thought might be useful as an extension method - but I can't find a useful way of making it so.
The only way I could see it being useful is as a static method on the string class because obviously it can't be attributed to an instance as the instance is null and this causes a compiler error. [Edit: Compiler error was due to uninitialized variable, which I misinterpreted]
I thought about adding it to a helper class but that just adds unnecessary complexity from a discoverability standpoint.
So this question is in two parts I suppose:
- Does the .NET framework have a built in way of resolving a null string to string.Empty that is common knowledge that I have missed somewhere along the way?
- If it doesn't - does anyone know of a way to add this method as a static extension of the string class?
Cheers in advance
Edit:
Okay, I guess I should've been a little more clear - I'm already well aware of null coallescing and I was using this in a place where I've got a dozen or so strings being inspected for calculation of a hash code.
As you can imagine, 12 lines of code closely following each other all containing the null coallescing syntax is an eyesore, so I moved the null coallescing operation out to a method to make things easier easier on the eyes. Which is perfect, however, it would be a perfect extension to the string object:
int hashcode =
FirstValue.ResolveNull().GetHashCode() ^
SecondValue.ResolveNull().GetHashCode() ^
...
over a dozen lines is a lot easier to read than:
int hashcode =
(FirstValue ?? String.Empty).GetHashCode() ^
(SecondValue ?? String.Empty).GetHashCode() ^
...
I was running into compiler problems when I didn't explicitly declare my string values as null but relied on the implicit:
string s;
If however, you explicitly define:
string s = null;
You can quite easily call:
s.ResolveNull();
Thanks all for your input.