c#中??的写法是什么意思
比如returna??(a=CreateObjectSet<cfg_program>("cfg_program"));...
比如return a ?? (a = CreateObjectSet<cfg_program>("cfg_program"));
展开
3个回答
展开全部
这个等同于
if(a==null)
{
a = CreateObjectSet<cfg_program>("cfg_program");
return a;
}
else
{
return a;
}
双问号是.net的语法糖,是一个便捷的写法,意思是a是否为null,是的话a=后面的表达式,不为空就无变化。建议自己写个简单的测试看看,很easy的。
顺便说一下,后面那括号里面应该不需要a=了吧 应该是
return a ?? (CreateObjectSet<cfg_program>("cfg_program"));
if(a==null)
{
a = CreateObjectSet<cfg_program>("cfg_program");
return a;
}
else
{
return a;
}
双问号是.net的语法糖,是一个便捷的写法,意思是a是否为null,是的话a=后面的表达式,不为空就无变化。建议自己写个简单的测试看看,很easy的。
顺便说一下,后面那括号里面应该不需要a=了吧 应该是
return a ?? (CreateObjectSet<cfg_program>("cfg_program"));
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-12-21
展开全部
如果a不是null,返回a,否则返回CreateObjectSet<cfg_program>("cfg_program")
等同于
return a==null?a:CreateObjectSet<cfg_program>("cfg_program")
等同于
return a==null?a:CreateObjectSet<cfg_program>("cfg_program")
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
空合并运算符(??):用于定义可空类型和引用类型的默认值。如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。
例:a??b,当a为null时则返回b,a不为空时返回a本身。空合并运算符为右结合运算符,即操作时从右向左进行组合的。如,“a??b??c”的形式按“a??(b??c)”计算。
例:a??b,当a为null时则返回b,a不为空时返回a本身。空合并运算符为右结合运算符,即操作时从右向左进行组合的。如,“a??b??c”的形式按“a??(b??c)”计算。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |