This one is pretty simple method, which takes care of null object:
public string ConvertToString(object obj)
{
if (obj != null)
return obj.ToString();
return null;
}
Then I decided to add special handling for IConvertible:
public string ConvertToString(object obj)
{
if (obj != null)
{
IConvertible convertible = obj as IConvertible;
if (convertible != null)
return Convert.ToString(convertible);
return obj.ToString();
}
return null;
}
Now it seems that it would have been better idea to check and return null immediately instead of placing all the code in the block. How can we fix this? I put caret on an "if" keyword and hit Alt-Enter.
After context action is executed I get what I need:
public string ConvertToString(object obj)
{
if (obj == null)
return null;
IConvertible convertible = obj as IConvertible;
if (convertible != null)
return Convert.ToString(convertible);
return obj.ToString();
}
If you like shorter methods, you can further transform the code:
Accepting convertion to conditional makes it even smaller:
public string ConvertToString(object obj)
{
if (obj == null)
return null;
IConvertible convertible = obj as IConvertible;
return convertible != null ? Convert.ToString(convertible) : obj.ToString();
}
Note: Some or all of the features mentioned in this article may be available only in latest EAP versions of ReSharper.
No comments:
Post a Comment