c# – “If”条件是否比?和铸造
发布时间:2020-12-15 06:19:19 所属栏目:百科 来源:网络整理
导读:我有以下两种相同功能的方法 – 一种具有“if”条件,一种具有“?和铸造“,哪种方法更好?为什么? 码: Int16? reportID2 = null; //Other code //Approach 1 if (reportID2 == null) { command.Parameters.AddWithValue("@report_type_code",DBNull.Value)
我有以下两种相同功能的方法 – 一种具有“if”条件,一种具有“?和铸造“,哪种方法更好?为什么?
码: Int16? reportID2 = null; //Other code //Approach 1 if (reportID2 == null) { command.Parameters.AddWithValue("@report_type_code",DBNull.Value); } else { command.Parameters.AddWithValue("@report_type_code",reportID2); } //Approach 2 command.Parameters.AddWithValue("@report_type_code",((object) reportID2) ?? DBNull.Value); UPDATE 根据答案,以下是 >增加可读性 注意:铸造成本可以忽略不计. 参考 > Null-Coallescing Operator – Why Casting? 解决方法
在这种情况下,我总是使用
null-coalescing operator:
command.Parameters.AddWithValue("@name",value ?? DBNull.Value); command.ExecuteScalar() as int? ?? -1; 等等 它增加代码可读性,减少分支深度.还专门为数据库相关的场景(如ADO.NET)创建. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何解析Oracle PL / SQL中的简单XML片段并将其加载到全局临
- 在PostgreSQL上使用SQLAlchemy创建全文搜索索引
- 读取与解析XML数据
- oracle – 如何实现基于上下文的数据库审计?
- c# – autofac:如何解析命名类型的集合?
- Postgresql – 备份数据库并恢复不同的所有者?
- ruby – foreman start和foreman run rails server有什么区
- react-native – 如何从React Native中的输入字段清除焦点?
- C为C#程序员
- Office 365 - For security reasons DTD is prohibited in