最近发现项目里有个这样的写法:entity.number ? ? 0
这样写是什么意思?顺便 再问句是vb.net转c#.net容易还是c#.net 转vb.net容易

解决方案 »

  1.   

    ?? 运算符...如果 ?? 运算符的左操作数非 null,该运算符将返回左操作数,否则返回右操作数。string s = "5" ?? "s";//返回"5"
            s = null ?? "s";//返回"s"
      

  2.   

    再问句是vb.net转c#.net容易还是c#.net 转vb.net容易
    估计两门语言你都了解点吧,要学好都难,或者学号一门后都不难。
      

  3.   

    ??运算符(C# 参考)  发送反馈
    ?? 运算符称为 null 合并运算符,用于定义可以为 null 值的类型和引用类型的默认值。 如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。备注
    --------------------------------------------------------------------------------可以为 null 的类型可以包含值,或者可以是未定义的。?? 运算符定义当可以为 null 的类型分配给非可以为 null 的类型时返回的默认值。 如果在尝试将可以为 null 值的类型分配给不可以为 null 值的类型时没有使用 ?? 运算符,则会生成编译时错误。 如果使用强制转换,且当前还未定义可以为 null 值的类型,则会引发 InvalidOperationException 异常。 有关更多信息,请参见 可以为 null 的类型(C# 编程指南)。 即使 ?? 运算符的两个参数都是常量,也不能将其结果视为常量。
    ============
    顺便 再问句是vb.net转c#.net容易还是c#.net 转vb.net容易建议你同时学,因为原理都是一样的,同时学让你节约更多的时间。还有 c# 就是c# 没有 c#.Net这种说法
      

  4.   

    看惯了vb的代码,现在看个这么大的 c#代码,头挺大
      

  5.   

    vb.net跟c#.net 都是一样的,就是写法不太一样,个人感觉还是vb容易些,写代码是没有什么大小写的区分,分号之类的东西,感觉很方便