操作setter以避免null
本文关键字:null setter 操作 | 更新日期: 2023-09-27 18:07:29
通常我们有:
public string code { get; set; }
我需要避免null引用异常,如果最终有人将代码设置为null
我尝试这个想法…任何帮助吗?
public string code { get { } set { if (code == null) { code = default(string); }}}
您需要声明一个支持字段,这里我将其称为_code
:
private string _code = "";
public string Code
{
get
{
return _code;
}
set
{
if (value == null)
_code = "";
else
_code = value;
}
}
我还将属性重命名为Code
,因为在c#中习惯将所有公开的内容都大写。
请注意,在您自己的代码中,您写的是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 ?? "";
}
}