比如说我创造了一只鸭子
Duck myDuck = DuckFactory.CreateDuck();
Run Code Online (Sandbox Code Playgroud)
在过去,我总是检查myDuck是否为空
if (myDuck == null)
{
// Do stuff
}
Run Code Online (Sandbox Code Playgroud)
我最近查看了一些首先检查null的代码.
if (null == myDuck)
{
// Do stuff
}
Run Code Online (Sandbox Code Playgroud)
在我看来,这些是相同的,但这两者之间有什么不同吗?一个人对另一个人有任何表现上的好处吗?是否有建议的最佳做法来检查对象是否为空?
cle*_*tus 16
第二个源于C/C++(和其他地方),这是一个有效的结构
if (myDuck = null) {
}
Run Code Online (Sandbox Code Playgroud)
这在C#中无效(除非你的表达式解析为布尔值).例如,这是有效的C#
bool b = ...
if (b = true) {
}
Run Code Online (Sandbox Code Playgroud)
当你想要比较时,将常数放在第一位是防御性的,以阻止意外分配.我会说更多的人把变量放在左边,但是将常量放到左边也没有错.
只需选择一个并保持一致.
| 归档时间: |
|
| 查看次数: |
1945 次 |
| 最近记录: |