我阅读了无数关于自动属性的文章,但无法找到不执行以下示例的理由。我在这里错过了什么吗?即有什么理由我应该在这个例子中使用常规属性?我经常这样做,而且效果很好。
在 StackOverflow 上的另一个线程(具有额外逻辑的 C#3.0 自动属性)中,答案被声明为否,如“否,自动实现的属性没有声明的实现。您希望提供的任何扩展实现都必须使用常规财产。”
class Foobar
{
public string Description { get; set; }
public bool Scary { get; private set; }
public void Describe(int size)
{
if (size <= 3)
{
switch (size)
{
case 1:
Description = "Cute";
Scary = false;
break;
case 2:
Description = "Interesting";
Scary = false;
break;
case 3:
Description = "Interesting";
Scary = false;
break;
}
}
else if (size > 4 && size < 10)
{
Description = "I'm sweating!";
Scary = true;
}
else
{
Description = "I'm outta here - every man for himself";
Scary = true;
}
}
}