这是一个场景..。
if (entry.Properties["something"].Value != null)
attribs.something = entry.Properties["something"].Value.ToString();
虽然有效且工作正常,但在我看来这看起来很丑陋。如果我在执行ToString()之前没有检查null,那么如果属性为null,它就会抛出一个异常。有没有更好的方法来处理这种情况?
非常感谢!
发布于 2009-02-15 05:39:46
8年后更新(哇!)要介绍c# 6's null-conditional operator
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();
}
发布于 2009-02-15 06:06:40
如果您的目标是.NET Framework3.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();
发布于 2011-01-25 06:45:10
Convert.ToString(entry.Properties["something"].Value);
https://stackoverflow.com/questions/550374
复制相似问题