当前位置:  编程技术>.net/c#/asp.net

C#中的问号(?号)用法小结

    来源: 互联网  发布时间:2014-10-30

    本文导语:  1. 可空类型修饰符(?):   引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。   例如:     string str=null;是正确的。     int i=null;编译器将报错。     为了使值类型也可为空,可空类型出现了...

1. 可空类型修饰符(?):

  引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。
  例如:
    string str=null;是正确的。
    int i=null;编译器将报错。
    为了使值类型也可为空,可空类型出现了,可空类型使用可空类型修饰符?来表示,表现形式为T?。
  例:int?表示是可空的整形,DateTime?表示为可空的时间。
  T?其实是System.Nullable(泛型结构)的缩写形式,也就意味着当你用到T?时编译器在编译时会把T?编译成System.Nullable的形式,
  例如:int?,编译后便是System.Nullable的形式。

2. 三元(运算符)表达式(?:):

语法为:条件表达式?表达式1:表达式2;
该操作首先求出条件表达式的值(bool类型),为true时调用表达式1,为flase时调用表达式2。
其逻辑为:"如果为真执行第一个,否则执行第二个。"

 例:
 test ? expression1 : expression2
 test 任何 Boolean 表达式。
 expression1 test 为 true 时返回的表达式。可能是逗点表达式。
 expression2 test 为 false 时返回的表达式。可能是逗点表达式。

 例如:
 string prm1="4"; string prm2="5";
 string prm3 = prm1==prm2?"yes":"no" // 此时prm3值为"no".

3. 空合并运算符(??):

空合并运算符 (null coalescing operator) ??
  用于定义可空类型和引用类型的默认值。如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。
  例:a??b 如果 a 为非空,则 a ?? b 的结果为 a;否则结果为 b 。

空合并运算符为右结合运算符,即操作时从右向左进行组合的。
  例:“a??b??c”的形式按“a??(b??c)”计算。


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • freetds连接MSSQL2000,应用程序读出来的数据中文部分全是问号!!
  • linux FC5下用程序生成的文件中,中文变成问号,怎么解决?
  • openoffice打开.doc文件有些文字变成问号
  • 今天中午(2002/04/23)CSDN怎么就剩下问号了??????????
  • 完美解决SQL server2005中插入汉字变成问号的问题
  • 在linux下用proc编译程序,'*.pc'文件编译后成了'*.c?',多了一个问号?
  • etc下配置开机自动起weblogic后web程序的中文全是问号(??)
  • linux命令模式下出现问号,请问怎么解决?
  • 我在linux上mount上了windows分区,但是windows分区的中文全是问号为什么????
  • jsp中文显示问号问题解决方法
  • openoffice 新建文件,我从网页上复制一些文字到这个新建文档里面后正常显示。但当我保存文档后关闭,再次打开文档时文档少部份中文变成了问号
  • java程序在linux系统下中文输出乱码,输出一个汉字对应一个问号
  • 谁说得详细谁得分!我从rh 7.3访问windows的文件时,发现无法显示中文,汉字都变成了问号。怎么解决阿
  • python实现问号表达式(?)的方法
  • Mysql插入中文变为全问号???的问题 解决方法
  • Cygwin开启shhd服务后用Putty登陆,文件的用户和所属组都是一串问号??????
  • resin2.1.5出现一堆问号:????????°ü ???????à
  • 为什么我的jsp的汉字不能显示,都是问号呀?
  • gdb 调试运行进程 堆栈中的函数名为问号
  • ACCESS插入中文全是问号(TOMCAT+JDK1.41)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3