Как изменить метод получения и установки, чтобы обработать исключение нулевой ссылки - PullRequest
0 голосов
/ 16 октября 2018

Я анализирую строку JSON и десериализую ее.Теперь работает нормально, но у меня проблема с обработкой значения, которое является пустой строкой или пустым значением.

Это свойство имеет 2 значения (например, link и value).Обычно.Но может случиться так, что свойство, которое я читаю, имеет значение 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 ]

0 голосов
/ 16 октября 2018

Если я теперь заново создаю экземпляр объекта с помощью нового модификатора, ссылка и значение также будут нулевыми.Есть ли способ заполнить ссылку и значение пустой строкой в ​​данном конкретном случае?

Sure

return new ResolvedBy { link = "", value = "" };
0 голосов
/ 16 октября 2018

Попробуйте сейчас, я обновил его, чтобы вернуть "", если свойство имеет значение 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);
        }
    }

}
0 голосов
/ 16 октября 2018

Вы можете присвоить link и value значение по умолчанию:

public class ResolvedBy
{
    public string link { get; set; } = "";
    public string value { get; set; } = "";
}
...