обычно мы имеем:
public string code { get; set; }
Мне нужно избегать исключения ссылочной ссылки, если в конце концов кто-то устанавливает код в null
Я пробую эту идею... любую помощь?
public string code { get { } set { if (code == null) { code = default(string); }}}
Вам нужно объявить поле поддержки, которое Ill вызывает здесь _code
:
private string _code = "";
public string Code
{
get
{
return _code;
}
set
{
if (value == null)
_code = "";
else
_code = value;
}
}
Ive также переименовал свойство в Code
потому что в С# принято использовать все, что доступно публике.
Обратите внимание, что в вашем собственном коде вы указали default(string)
, но это то же самое, что и null
.
Вместо того, чтобы _code
на ""
, распространенная практика - исключение:
private string _code = "";
public string Code
{
get
{
return _code;
}
set
{
if (value == null)
throw new ArgumentNullException("value");
_code = value;
}
}
вы можете попробовать это
private string _code="";
public string Code
{
get
{ return _code ; }
set
{
_code = value ?? "";
}
}
private string _code = "";
set { _code = value ?? ""; }
что эквивалентно установщику в вашем первом примере кода.