C# 当don';我不知道返回值?

C# 当don';我不知道返回值?,c#,servicemanager,C#,Servicemanager,如果您不知道项的值可以是多少,那么将其设为null的最佳方法是什么?我正在浏览的对象可以是任何类型的对象。当我不知道返回值可能是什么时,如何进行强制转换 string viewValue = emop.Object[null, viewDetails.Columns[i].Property] != null ? emop.Object[null, viewDetails.Columns[i].Property].Value.ToString() :

如果您不知道项的值可以是多少,那么将其设为null的最佳方法是什么?我正在浏览的对象可以是任何类型的对象。当我不知道返回值可能是什么时,如何进行强制转换

string viewValue
    = emop.Object[null, viewDetails.Columns[i].Property] != null
          ? emop.Object[null, viewDetails.Columns[i].Property].Value.ToString()
          : string.Empty;

我认为将所有对象强制转换为字符串可能更好,但有些项无法表示item为null。

未批准将所有对象转换为字符串,因为我不知道您正在处理的数据。我相信这会纠正你的实际错误

string viewValue
= emop.Object[null, viewDetails.Columns[i].Property] != null && emop.Object[null, viewDetails.Columns[i].Property].Value != null
      ? emop.Object[null, viewDetails.Columns[i].Property].Value.ToString()
      : string.Empty;

我对.Value属性添加了一个NOTNULL检查。否则,调用.ToString()可能是针对空对象进行调用。

不清楚为什么需要将它们转换为字符串,用双数据泵送内存。这背后的原因是什么?哦,我想你也可以检查
Value
是否不是
null
(不仅仅是
emop.Object[null,viewDetails.Columns[I].Property]
)。不要在一行中这样做,这已经够混乱的了……您的代码失败了,因为您正在检查项是否为null,但在调用.ToString()之前没有检查.Value是否为null。@JoelC您能添加示例吗?请用示例JoelC,这样我就可以标记您了,谢谢