Этот код:
output.Append(property.GetValue(this)?.ToString()));
То же, что и:
object propValue = property.GetValue(this);
string propString = null;
if (propValue != null)
{
propString = propValue.ToString();
}
output.Append(propString); // propString can be null
Это может быть просто указано так:
string propString = property.GetValue(this)?.ToString(); // This performs a ToString if property.GetValue() is not null, otherwise propString will be null as well
output.Append(propValue); // propValue can be null
Если вы хотите предотвратитьВызов Append
с нулевым значением, которое вы можете сделать:
string propString = property.GetValue(this)?.ToString(); // This performs a ToString if property.GetValue() is not null, otherwise propString will be null as well
if (propString == null)
{
propString = string.Empty;
}
output.Append(propValue); // propString is not null
Это можно упростить с помощью оператора нуль-слияния :
string propString = property.GetValue(this)?.ToString() ?? string.Empty
output.Append(propValue); // propString is not null