我试图将可变属性信息转储到一个简单的字符串,但是当它到达我的可空布尔型时,as string
总是返回null - 即使实际值为true,假!作为字符串的C#布尔值始终为空
StringBuilder propertyDump = new StringBuilder();
foreach(PropertyInfo property in typeof(MyClass).GetProperties())
{
propertyDump.Append(property.Name)
.Append(":")
.Append(property.GetValue(myClassInstance, null) as string);
}
return propertyDump.ToString();
不引发任何异常;快速和输出正是我想要的,除了任何属性是bool?
总是错误的。如果我快速看,并做.ToString()
它的作品!但我不能保证其他属性实际上不是空的。
任何人都可以解释为什么这是?甚至更好,解决方法?
这正是'as'是应该做的。 – SLaks
如果值为空,我强烈建议附加“null”。你可以有一个字符串属性,它的值是“” - 是空还是空?你不知道。所以你最好使用'?:'或'''',这样空值将被写为“null”或其他空识别字符串。 – SimpleVar