这是场景......
if (entry.Properties["something"].Value != null) attribs.something = entry.Properties["something"].Value.ToString();
虽然有效且正常工作,但这看起来很难看.如果我在执行ToString()之前没有检查null,那么如果属性为null,则抛出异常.有没有更好的方法来处理这种情况?
非常感激!
8年后更新(哇!)以涵盖c#6的空条件运算符:
var value = maybeNull?.ToString() ?? String.Empty;
其他方法:
object defaultValue = "default"; attribs.something = (entry.Properties["something"].Value ?? defaultValue).ToString()
我也使用了这个,这不是非常聪明但方便:
public static string ToSafeString(this object obj) { return (obj ?? string.Empty).ToString(); }
如果您的目标是.NET Framework 3.5,那么我认为最优雅的解决方案是扩展方法.
public static class ObjectExtensions { public static string NullSafeToString(this object obj) { return obj != null ? obj.ToString() : String.Empty; } }
然后使用:
attribs.something = entry.Properties["something"].Value.NullSafeToString();
Convert.ToString(entry.Properties["something"].Value);