加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Linq2Sql:HasValue和!= null,对可空类型的工作方式是否

发布时间:2020-12-15 04:27:43 所属栏目:百科 来源:网络整理
导读:我有什么理由选择其中一个而不是另一个吗?或者它真的不重要吗? var a = data.Cars.Where(? = ?.LicensePlate != null);var b = data.Cars.Where(? = ?.LicensePlate.HasValue); 我之前使用过!= null,但开始认为我应该切换,因为HasValue类型的读取更好.你
我有什么理由选择其中一个而不是另一个吗?或者它真的不重要吗?
var a = data.Cars.Where(? => ?.LicensePlate != null);

var b = data.Cars.Where(? => ?.LicensePlate.HasValue);

我之前使用过!= null,但开始认为我应该切换,因为HasValue类型的读取更好.你们有什么感想?有什么不同吗?除了一个角色以外?任何性能差异? Sql差异?

解决方法

不,两个陈述都是一样的,你应该选择你认为更具可读性的陈述.

值得注意的是,编译器将替换Nullable< T>上的空比较.调用HasValue.换句话说:

class Program
{
    static void Main()
    {
        int? i = 0;

        Console.WriteLine(i != null);
        Console.WriteLine(i.HasValue);
    }
}

汇编到这个:

private static void Main()
{
    int? i = 0;
    Console.WriteLine(i.HasValue);
    Console.WriteLine(i.HasValue);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读