public string code { get; set; }
如果最终有人将代码设置为null
,我需要避免空引用异常我尝试这个想法......有什么帮助吗?
public string code { get { } set { if (code == null) { code = default(string); }}}
答案 0 :(得分:4)
你需要声明一个支持字段,我在这里称之为_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;
}
}
答案 1 :(得分:1)
你可以试试这个
private string _code="";
public string Code
{
get
{ return _code ; }
set
{
_code = value ?? "";
}
}