Cod*_*uth 5 c# performance nullable
Nullable<T>当我需要将值加载到类和结构中时,我需要使用类型很多,例如从数据库加载可空值(如下例所示).
考虑这段代码:
public class InfoObject
{
public int? UserID { get; set; }
}
// Load the ID into an SqlInt32
SqlInt32 userID = reader.GetSqlInt32(reader.GetOrdinal("intUserID"));
Run Code Online (Sandbox Code Playgroud)
当我需要将值加载到可空属性中时,有时我这样做:
infoObject.UserID = userID.IsNull ? (int?)null : userID.Value;
Run Code Online (Sandbox Code Playgroud)
有时我这样做:
infoObject.UserID = userID.IsNull ? new int?() : userID.Value;
Run Code Online (Sandbox Code Playgroud)
虽然他们获得相同的结果,我想看看是否有人知道,这是更好之间使用(int?)null,并new int?()与性能有关的,最小的IL代码,最佳实践等?
一般来说,我一直偏爱new int?()上面代码的版本,但我不确定(int?)null编译器是否可以更快地进行转换new int?().
干杯!
他们将生成相同的IL.使用您觉得更容易阅读的内容.
当你谈到"编译器更快解决"的问题时,你是在谈论微优化你的构建时间吗?我不知道哪个会更快,但我怀疑它会为任何重要的代码体系带来可靠的可衡量的差异.
就个人而言,null无论什么时候我都可以使用,没有任何歧义; 我想我仍然普遍喜欢演员来电话new,但这并没有什么不同.
| 归档时间: |
|
| 查看次数: |
1218 次 |
| 最近记录: |