C#?操作符相信大家都不会陌生了吧,是可空类型。

 

C#中?与??操作符的使用(使用Linq操作xml)            int i = 5;
C#中?与??操作符的使用(使用Linq操作xml)            
//int j = null;//会报错,Cannot convert null to 'int' because it is a non-nullable value type
C#中?与??操作符的使用(使用Linq操作xml)
            int? k = null;//使用?操作符来定义可空类型就不会报错了
C#中?与??操作符的使用(使用Linq操作xml)
            Console.WriteLine(i);
C#中?与??操作符的使用(使用Linq操作xml)            
//Console.WriteLine(j);
C#中?与??操作符的使用(使用Linq操作xml)
            Console.WriteLine(k);
C#中?与??操作符的使用(使用Linq操作xml)

 

 

那么,??又是什么东西呢?

??判断表达式左侧是否为null,如果左侧为null就返回??右侧的值,否则就返回左侧值。

 

C#中?与??操作符的使用(使用Linq操作xml)            int? num1 = 55;
C#中?与??操作符的使用(使用Linq操作xml)            
int? num2 = null;
C#中?与??操作符的使用(使用Linq操作xml)            
string str1 = "Hello";
C#中?与??操作符的使用(使用Linq操作xml)            
string str2 = null;
C#中?与??操作符的使用(使用Linq操作xml)            
int result1 = num1 ?? 0;
C#中?与??操作符的使用(使用Linq操作xml)            
int result2 = num2 ?? 0;
C#中?与??操作符的使用(使用Linq操作xml)            
string result3 = str1 ?? "It was null";
C#中?与??操作符的使用(使用Linq操作xml)            
string result4 = str2 ?? "It was null";
C#中?与??操作符的使用(使用Linq操作xml)
C#中?与??操作符的使用(使用Linq操作xml)            Console.WriteLine(result1.ToString() 
+ "\r\n");//输出结果:55
C#中?与??操作符的使用(使用Linq操作xml)
            Console.WriteLine(result2.ToString() + "\r\n");//输出结果:0
C#中?与??操作符的使用(使用Linq操作xml)
            Console.WriteLine(result3.ToString() + "\r\n");//输出结果:Hello
C#中?与??操作符的使用(使用Linq操作xml)
            Console.WriteLine(result4.ToString() + "\r\n");//输出结果:It was null
C#中?与??操作符的使用(使用Linq操作xml)

 

 

顺便再说一下,VS2008中利用Linq读取XML文件,里面涉及到上面提及到的操作符了.

 

C#中?与??操作符的使用(使用Linq操作xml)        XDocument contactFile = XDocument.Load(Server.MapPath("~/contacts.xml"));
C#中?与??操作符的使用(使用Linq操作xml)        var contacts 
= from c in contactFile.Descendants("Contact")
C#中?与??操作符的使用(使用Linq操作xml)                       select 
new

xml文件如下:

C#中?与??操作符的使用(使用Linq操作xml)<?xml version="1.0" encoding="utf-8" ?>
C#中?与??操作符的使用(使用Linq操作xml)
<Contacts>
C#中?与??操作符的使用(使用Linq操作xml)  
<Contact>
C#中?与??操作符的使用(使用Linq操作xml)    
<Name>Scott Guthrie</Name>
C#中?与??操作符的使用(使用Linq操作xml)    
<Title>General Manager</Title>
C#中?与??操作符的使用(使用Linq操作xml)    
<Email>scottgu@microsoft.com</Email>
C#中?与??操作符的使用(使用Linq操作xml)    
<Age>36</Age>
C#中?与??操作符的使用(使用Linq操作xml)    
<YearAtCompany>10</YearAtCompany>
C#中?与??操作符的使用(使用Linq操作xml)  
</Contact>
C#中?与??操作符的使用(使用Linq操作xml)  
<Contact>
C#中?与??操作符的使用(使用Linq操作xml)    
<Name>Bill Gates</Name>
C#中?与??操作符的使用(使用Linq操作xml)    
<Title>Chairman</Title>
C#中?与??操作符的使用(使用Linq操作xml)    
<Email>billgates@microsoft.com</Email>
C#中?与??操作符的使用(使用Linq操作xml)    
<Age>50</Age>
C#中?与??操作符的使用(使用Linq操作xml)    
C#中?与??操作符的使用(使用Linq操作xml)  
</Contact>
C#中?与??操作符的使用(使用Linq操作xml)
</Contacts>

 

 注意:以上代码是在VS2008 ENU RTM 上测试通过的。
??操作符在VS2005下不支持的.

 

 

相关文章:

  • 2021-08-16
  • 2021-11-09
  • 2021-07-13
  • 2021-12-12
  • 2022-12-23
  • 2022-12-23
  • 2021-07-30
猜你喜欢
  • 2022-12-23
  • 2021-10-27
  • 2022-12-23
  • 2022-12-23
  • 2022-01-23
  • 2022-01-05
相关资源
相似解决方案