有人能告诉我在c#中检查对象的对象或属性是否为null的性能成本是多少?我正在开发一个ASP.NET MVC应用程序,在模型中进行空检查,然后在视图中再次完成。我认为这是过度的,但如果没有真正的性能影响,那么我不会看到以这种方式做事的伤害。
答案 0 :(得分:3)
如果您在渲染时只执行一次,并且在初始化模型时执行一次,我认为它不可测量。
如果它在计算密集型循环中会产生影响。
您应该注意查询数据库,读/写文件等内容。
答案 1 :(得分:3)
几乎无足轻重。这样做两次不是问题。这样做几百万次可能仍然不是问题(但可能表明其他一些编程问题)
答案 2 :(得分:1)
当然,有一些性能损失,检查某些内容是否为null需要一些指示......
如果您希望最大限度地降低性能,请使用ILDASM工具查看您正在使用的方法的CIL代码,并检查正在发生的实际执行路径。我甚至会说:确保你使用像Object.ReferenceEquals(而不是实例的Equals方法或相等运算符)。