一个基础问题

老蒋 2009-07-30 04:32:06
有这样一句
string webSiteId = Request.QueryString["webSiteId"] ?? ConfigurationManager.AppSettings["DefaultSite"];
当中的"??"到底有什么作用?????
...全文
160 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
VistaKobe 2009-07-31
  • 打赏
  • 举报
回复
学习,这个我第一次看到,以前都是?:,呵呵
  • 打赏
  • 举报
回复
看了MSDN上的解释(感谢wuyi8808提供的连接),我的理解是,??运算符类似于sql里的ISNULL函数,
x = a??b的意思是,如果a不为空,则将a的值赋给x,否则将b的值赋给x,用sql来写,就是ISNULL(a, b)
sz_xd 2009-07-31
  • 打赏
  • 举报
回复
up
让爱延续 2009-07-30
  • 打赏
  • 举报
回复
就像三目运算符x:a?b一样。
十八道胡同 2009-07-30
  • 打赏
  • 举报
回复
a??b

类似于a?a:b;
mbh0210 2009-07-30
  • 打赏
  • 举报
回复
??判断前面的对象是否为空,不空前面的值,为空 ??后面的值
cxy1415 2009-07-30
  • 打赏
  • 举报
回复
问号在C#中表示种弱类型。下面解释下问号的用法:

a。 变量定义中含有一个问号,意思是这个数据类型是NullAble类型的。用于给变量设初值的时候,给变量(int类型)赋值为null,而不是0!

例子: int? x = 125 等同于Nullable<int> x = new Nullable<int>(125);


b。 变量定义中含有两个问号, 用于判断并赋值,先判断当前变量是否为null,如果是就可以赋一个新值,否则跳过!意思是取所赋值??左边的,如果左边为null,取所赋值??右边的。

例子: page ?? 0,表示page为null的时候,取右边的值0.

wuyi8808 2009-07-30
  • 打赏
  • 举报
回复
z = a ?? b 

// 大体上相当于:

z = a == null ? b : a

// 或者:

if (a == null) z = b;
else z = a;
wuyi8808 2009-07-30
  • 打赏
  • 举报
回复
可参阅m$网站
http://msdn.microsoft.com/zh-cn/library/2cf62fcy.aspx

?? 运算符一节
enihs 2009-07-30
  • 打赏
  • 举报
回复
可空类型.net2.0新特性。
hecker728 2009-07-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyi8808 的回复:]
可空类型的值为 null 时用 ?? 后面的值,不为 null 时用 ?? 前面的值。
[/Quote]

wuyi8808 2009-07-30
  • 打赏
  • 举报
回复
a ?? b

大体上相当于:

a == null ? b : a
wuyi8808 2009-07-30
  • 打赏
  • 举报
回复
可空类型的值为 null 时用 ?? 后面的值,不为 null 时用 ?? 前面的值。

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧