当前位置:  开发笔记 > 编程语言 > 正文

c#Object obj的值为{}.什么是 "{}"?

如何解决《c#Objectobj的值为{}.什么是"{}"?》经验,为你挑选了1个好方法。

我正在使用一些运行SQL查询的旧代码作为参考.

在某些时候,它会变成如下:

sqlDataAdapter.Fill(dataSet);
DataRow dataRow = dataSet.Tables[0].Rows[0];
Object obj = dataRow[fieldName];

旧代码确实:

string output;
if (!string.IsNullOrEmpty(obj.ToString())) { output = obj.ToString(); }
else { output = "Not Available"; }

我改为:

output = obj as string ?? "Not Available"

但有时,它破了.正如我所怀疑的那样,当条目是一个时,它正在发生int.int在那些案件中铸造解决了这个问题.

然后,当没有obj[fieldName] int类型的条目时,出现了另一个问题.当我走过调试器时,我惊讶地发现那obj不是null.在VS中,鼠标移除显示它有一个价值{}.

到底是{}什么?我如何对它进行布尔测试?

(在旧代码中,它会在这种情况下.ToString()返回""并按预期工作.)



1> Nathan Ridle..:

{并且}打开和关闭大括号并且象征着对象的开始和结束.因此,没有特殊属性的空对象以简写形式描述{}.调试器使用此表示法来帮助您在视觉上区分空对象,空字符串和null.

如果你将鼠标悬停在obj[fieldName]没有条目fieldName,调试器将不关心它,它将显示值obj.你必须使用即时窗口或手表/速表.调试器只会看到你将鼠标悬停在obj上,并假设你指的是数组本身,而不是指定索引处数组的内容.

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有