2 回答
TA贡献2021条经验 获得超8个赞
如果你get和set有身体,你需要哪个你缺少支持字段。
class MyClass
{
private int[] _myArray;
public int[] MyArray
{
get {return _myArray;}
set
{
if (value == null) { _myArray = new int[2] { 0, 0 }; }
else { _myArray = value; }
}
}
public MyClass()
{
this.MyArray = new int[2] { 0, 0 };
}
}
在此代码中,有一个私有字段_myArray,用作该属性的后备字段。
TA贡献1851条经验 获得超3个赞
那里的问题是您指向相同的内存空间:
public int[] MyArray
{
get {return MyArray;}
...
}
访问媒体资源myArray将访问您的媒体资源myArray,这将导致您访问同一媒体资源!
答案是使用private variable,只能直接从Your class编写。并且public property将仅访问此变量。
像这样:
class MyClass
{
private int[] _myArray;
public int[] MyArray
{
get { return _myArray; }
set
{
if (value == null) { _myArray = new int[2] { 0, 0 }; return; }
else { _myArray = value; return; }
}
}
}
有关属性的更多详细信息,例如,可以在DotNetPerls或MS Official页面上找到。
- 2 回答
- 0 关注
- 132 浏览
添加回答
举报