Как изменить метод получения и установки, чтобы обработать исключение нулевой ссылки
Я анализирую строку JSON и десериализую ее. Теперь работает нормально, но у меня проблема с обработкой значения, которое является пустой строкой или нулем.
Эти свойства имеют 2 значения (например, ссылка и значение). Обычно. Но может случиться так, что свойство, которое я прочитал, имеет значение NULL (поэтому нет ссылки и нет значения).
Я написал геттер и сеттер, как это.
private ResolvedBy myVar1;
public ResolvedBy resolved_by
{
get
{
if (myVar1 == null)
{
myVar1 = new ResolvedBy();
return myVar1;
}
// if (String.IsNullOrWhiteSpace(myVar1.link) && String.IsNullOrWhiteSpace(myVar1.value))
if (myVar1.ToString() == String.Empty)
{
myVar1 = new ResolvedBy();
return myVar1;
}
return myVar1;
}
set { myVar1 = value; }
}
и класс имеет следующий код
public class ResolvedBy //
{
public string link { get; set; }
public string value { get; set; }
}
Если я теперь создаю экземпляр объекта с использованием нового модификатора, ссылка и значение также будут нулевыми. Есть ли способ заполнить ссылку и значение пустой строкой в этом конкретном случае?
3 ответа
Вы могли бы дать link
а также value
значение по умолчанию:
public class ResolvedBy
{
public string link { get; set; } = "";
public string value { get; set; } = "";
}
Если я теперь создаю экземпляр объекта с использованием нового модификатора, ссылка и значение также будут нулевыми. Есть ли способ заполнить ссылку и значение пустой строкой в этом конкретном случае?
Конечно
return new ResolvedBy { link = "", value = "" };
Попробуйте это сейчас, я обновил его, чтобы вернуть "", если свойство имеет значение null
class ResolvedBy
{
string link;
string value;
public string Link
{
get
{
return (this.link == null ? "" :this.link
}
set
{
this.link= (value ==null ? "" : value);
}
}
public string Value
{
get
{
return (this.value == null ? "" : this.value);
}
set
{
this.value =( value == null ? "" : value);
}
}
}