Я пытаюсь сбрасывать информацию о свойствах переменных в простую строку, но когда она попадает в мои обнуляемые bools, as string
всегда возвращает null - даже если истинное значение истинно | ложный!C# Значение bool как строка всегда null
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()
, это сработает! Но я не могу гарантировать, что другие свойства не являются, по сути, нулевыми.
Может ли кто-нибудь объяснить, почему это так? и даже лучше, обходной путь?
Это именно то, что 'как' должен делать. – SLaks
Я настоятельно рекомендую добавить «null», если значение равно null. У вас может быть свойство string, которое будет иметь значение «» - было ли оно нулевым или было пустым? Вы не можете сказать. Поэтому вам лучше пойти с '?:' Или '??', чтобы нулевые значения были записаны как «null» или какая-то другая нуль-идентифицирующая строка. – SimpleVar