在我的一堂课中,我有一个ImageNames
想要获取和设置的属性。我尝试添加set
,但它不起作用。如何使此属性可设置?
public string[] ImageNames
{
get
{
return new string[] { };
}
//set; doesn't work
}
在我的一堂课中,我有一个ImageNames
想要获取和设置的属性。我尝试添加set
,但它不起作用。如何使此属性可设置?
public string[] ImageNames
{
get
{
return new string[] { };
}
//set; doesn't work
}
您通常需要一个支持字段:
private string[] imageNames = new string[] {};
public string[] ImageNames
{
get
{
return imageNames;
}
set
{
imageNames = value;
}
}
或使用自动属性:
public string[] ImageNames { get; set; }
话虽如此,您可能只想公开一个允许人们添加名称的集合,而不是替换整个名称列表,即:
private List<string> imageNames = new List<string>();
public IList<string> ImageNames { get { return imageNames; } }
这将允许您添加和删除名称,但不能更改集合本身。
如果你想为你的字符串[]设置任何东西,你需要一个变量来设置。
像这样:
private string[] m_imageNames;
public string[] ImageNames
{
get {
if (m_imageNames == null) {
m_imageNames = new string[] { };
}
return m_imageNames;
}
set {
m_imageNames = value;
}
}
此外,这些被称为属性,而不是属性。属性是您可以在方法、类或属性上设置的东西,它会以某种方式对其进行转换。例子:
[DataMember] // uses DataMemberAttribute
public virtual int SomeVariable { get; set; }
只需使用自动属性
public string[] ImageNames { get; set;}
在这里阅读