0

我可以分配如下变量:

if (Session["myVariable"] != null)
{
    string variAble = Session["myVariable"].ToString();
}

有没有一种方法可以检查一个对象是否为空,如果它不为空则赋值?

4

3 回答 3

5

string variAble = Session["myVariable"] ?? "";

编辑@hatchet 建议的稍微更健壮的形式是:

string variAble = (Session["myVariable"] ?? "").ToString();

于 2013-01-17T22:30:42.720 回答
2

虽然这不是什么新鲜事,但您可以使用条件运算符来潜在地简化它:

string variable = Session["myVariable"] != null ? Session["myVariable"].ToString() : "Fallback";
于 2013-01-17T22:30:38.697 回答
2

您可以编写一个扩展方法,因为它们仍然适用于空对象。

public static class StringExtensions
{
    public static String ToNullString(this object o)
    {
        return o == null ? "" : o.ToString();
    }
}

不过,我会认为它的形式很糟糕——它会让在你之后支持代码的人感到困惑,甚至会让你在接下来的几个月里感到困惑。最好只做空检查。

于 2013-01-17T22:36:50.953 回答