当前位置:  开发笔记 > 编程语言 > 正文

在ToString()之前检查null

如何解决《在ToString()之前检查null》经验,为你挑选了3个好方法。

这是场景......

if (entry.Properties["something"].Value != null)
  attribs.something = entry.Properties["something"].Value.ToString();

虽然有效且正常工作,但这看起来很难看.如果我在执行ToString()之前没有检查null,那么如果属性为null,则抛出异常.有没有更好的方法来处理这种情况?

非常感激!



1> Rex M..:

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();
}



2> Dale Ragan..:

如果您的目标是.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();



3> 小智..:
Convert.ToString(entry.Properties["something"].Value);


这是有效的,因为如果value为null,它返回空字符串.
推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有