C#:如何对动态对象执行空检查

Seb*_*son 25 c# dynamic null-check

如何对动态对象执行空检查

伪代码:

public void Main() {
    dynamic dynamicObject = 33;
    if(true) { // Arbitrary logic
        dynamicObject = null;
    }
    Method(dynamicObject);
}

public void Method(dynamic param) {
    // TODO: check if the content of 'param' is equal to null
}
Run Code Online (Sandbox Code Playgroud)

Jar*_*Par 36

您是否担心动态对象是否有可能会改变null解释方式的自定义相等运算符?如果是这样,请使用Object.ReferenceEquals

if (Object.ReferenceEquals(null, param)) {
  .......
}
Run Code Online (Sandbox Code Playgroud)

  • +1当然.但是你可能会失去"对象" (3认同)
  • 你可以只写`ReferenceEquals(null, param)`。我无法相信 SO 上关于这个主题的约 5 个问题并没有这么简单地解决它。 (2认同)
  • @Ani肯定.对于我来说,接近邪恶,几乎每个代码样本都可以被邪恶的人击败. (2认同)