Jua*_*eza 0 c# comparison null
我几乎可以肯定这两个代码是等价的,但不确定原因.
首先是我通常如何做,我认为安全和更可读的方式.
string userLine = Console.ReadLine();
while (userLine != null) {
    // do things with userLine
    userLine =  Console.ReadLine();
}
第二个有效,但不确定原因.因为我将一个assigment比较为null.
string userLine;
while ((userLine =  Console.ReadLine()) != null) {
    // do things with userLine
}
我相信您认为赋值操作不返回任何值或返回Boolean值.这是不正确的.
请参阅:=运营商
赋值运算符(=)将其右侧操作数的值存储在由其左侧操作数表示的存储位置,属性或索引器中,并将该值作为结果返回.
所以你的陈述
while ((userLine =  Console.ReadLine()) != null) {
从Console.ReadLine结果中获取值userLine并返回相同的值,并与之进行比较null.
| 归档时间: | 
 | 
| 查看次数: | 54 次 | 
| 最近记录: |