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); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |