Getter返回NULL c#
当使用getter访问属性时,我得到一个空值。我把它改成了public,以测试其他一切是否正常,是的,没有其他问题 省级 形式Getter返回NULL c#,c#,getter-setter,C#,Getter Setter,当使用getter访问属性时,我得到一个空值。我把它改成了public,以测试其他一切是否正常,是的,没有其他问题 省级 形式 public Form1() { //htgetprovides()返回省的列表 初始化组件(); 列表省列表= HTProvince.htgetprovings(); foreach(省列表中的HTX省) { //有效。将每个项目的省代码属性添加到我的列表中 provincesListBox.Items.Add(x.provinceCode); //抛出空异常。不工作
public Form1()
{
//htgetprovides()返回省的列表
初始化组件();
列表省列表=
HTProvince.htgetprovings();
foreach(省列表中的HTX省)
{
//有效。将每个项目的省代码属性添加到我的列表中
provincesListBox.Items.Add(x.provinceCode);
//抛出空异常。不工作
provincesListBox.Items.Add(x.ProvinceCode);
}
}
这是正确的行为,您没有为此属性返回任何值或设置值,因此它为空
public string ProvinceCode
{
get; set;
}
如果要返回provinceCode
private string provinceCode;
public string ProvinceCode
{
get
{
return provinceCode;
}
set
{
provinceCode = value;
}
}
如果您希望在未设置ProvinceCode的情况下具有一些默认值,则可以使用延迟加载:
private string _provinceCode;
public string ProvinceCode
{
get
{
if(string.IsNullOrEmpty(_provinceCode)) {
_provinceCode = "CODE";
}
return _provinceCode;
}
set
{
_provinceCode = value;
}
}
这是一种糟糕的做法。您必须将字段“provinceCode”设置为私有
private string provinceCode;
你的财产必须是公共的
只能访问
public string ProvinceCode
{
get
{
return provinceCode;
}
set
{
provinceCode = value;
}
}
public Form1()
{
//HTGetProvinces() returns a list of provinces
InitializeComponent();
List<HTProvince> provinceList =
HTProvince.HTGetProvinces();
foreach (HTProvince x in provinceList)
{
//Works. Adds items the province code property of for each item to my list
provincesListBox.Items.Add(x.ProvinceCode);
}
}
公共字符串ProvinceCode
{
得到
{
返回provinceCode;
}
设置
{
provinceCode=值;
}
}
公共表格1()
{
//htgetprovides()返回省的列表
初始化组件();
列表省列表=
HTProvince.htgetprovings();
foreach(省列表中的HTX省)
{
//有效。将每个项目的省代码属性添加到我的列表中
provincesListBox.Items.Add(x.ProvinceCode);
}
}
这是C#3.0及更高版本中引入的自动属性
将属性更改为:
private string provinceCode { get; set; }
代替单独的方法:
public string ProvinceCode
{
get; set;
}
它为null,因为您从未为该属性设置值。的可能重复
private string provinceCode { get; set; }
public string ProvinceCode
{
get; set;
}