我在下面编写了代码行,但突出显示了一个错误:
get必须声明一个未标记为abstract,extern或partial
的正文
我不明白这是什么问题?为什么集合不能在不弄清get
?
public string NoteColour { get; set { SetFontColour(value); } }
答案 0 :(得分:8)
您必须为get
提供实现,因为如果get
和set
都没有实现,编译器只允许自动实现的属性。
如果你实现其中任何一个,你也必须为另一个实现。
我希望有类似的东西:
public string NoteColour { get { return GetFontColor(); } set { SetFontColour(value); } }
答案 1 :(得分:1)
错误表明您需要为get
方法提供正文。因此,如果您已经创建了自己的属性,那么您必须同时实现get和set或者无。
public string NoteColour
{
get
{
return GetMethod();
}
set
{
SetFontColour(value);
}
}
答案 2 :(得分:0)
如果您没有为get
和set
编写正文,则会调用一个宏,为您的属性添加隐藏的私有字段以存储实际值。这是必需的,因为属性没有与之关联的内存,只是像处理类对象的方法一样。它让你说服不要像过去那样编写explecit getter或setter方法。
如果你想做自定义事物(而不是简单地封装一个字段),你必须声明两个体,因为宏不知道它应该返回哪个字段。
为了完整性:
private string noteColor = string.Empty;
public string NoteColour
{
get
{
return this.noteColor;
}
set
{
// add custom actions needed here
this.noteColor = value;
}
}