KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
As a programmer I would have expected this to throw an exception. Is there a reason why it treats null as ""? string s = "hello"; string t = null; Console.WriteLine(s + t); Output: hello Just to emphasise my question, do you know why the decision to turn null into String.Empty was made ? I was expecting some string to be added but there was a problem further back where it wasn't retrieving it properly and it came back with null. The problem went unnoticed! Here's a pseudocode of why I think it is bad (and why I was shocked to discover no error): You can assume I overloaded ToString to give the name of the person or details about them. Person p = PersonDatabase.GetForName("Jimmy Gibbs"); Console.WriteLine("Name is: " + p.ToString()); Throws an exception because p is null String p = PersonDatabase.GetForName("Jimmy Gibbs").Name; Console.WriteLine("Name is: " + p); Doesn't throw an exception, even though p is null (it treats it as ""). (If you want to be picky and say I won't be able to get Name as GetforName will be null, think of it as this:) String p = PersonDatabase.GetNameFromID(1234); // Returns a string or null if not found Console.WriteLine("Name is: " + p); (If you use this value in a list or array you'll end up with a blank entry which is what broke for me, it was creating javascript and trying to get element by ID of "")
Tags (comma-separated)
Save Edits
Cancel