Ref*_*din 16 c# null nullreferenceexception
我有以下代码行:
var selectedDomainID = lkuDomainType.EditValue.Equals(null)
? string.Empty
: lkuDomainType.EditValue;
Run Code Online (Sandbox Code Playgroud)
有时会产生一个NullReferenceException.我不明白的是为什么.是不是要检查我的代码的全部要点,null如果是这样的话string.empty?当我检查DEBUG时,它说明EditValue == null了我错过了什么?
Yur*_*ich 29
使用lkuDomainType.EditValue == null,否则您尝试在null对象上调用实例方法.但更好的选择可能是lkuDomainType.EditValue ?? String.Empty.还要注意为lkuDomainTypenull,除非它是一个类而不是一个对象.
Nul*_*ion 15
当您使用Object.Property和Object未定义时,您将取消引用空指针,这就是您获得异常的原因.相反,使用:
var selectedDomainID = lkuDomainType.EditValue == null ? string.Empty : lkuDomainType.EditValue;
Run Code Online (Sandbox Code Playgroud)
如果EditValue为null则无法调用Equals.在这个cas你必须做:
var selectedDomainID = lkuDomainType.EditValue == null ? string.Empty : lkuDomainType.EditValue;
Run Code Online (Sandbox Code Playgroud)
或者您可以通过以下方式简化它:
var selectedDomainID = lkuDomainType.EditValue ?? string.Empty;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20988 次 |
| 最近记录: |