https://github.com/krgamestudios/Last-Ember/blob/master/Scripts/Managers/PauseManager.cs
//paused controller
bool paused = false;
public bool Paused {
get {
return paused;
}
set {
paused = value;
TriggerLists();
}
}
我知道您可以执行以下操作:Paused { get; set; }
(出于什么目的,我不知道)。我想知道的是,以上代码是否是其中包含额外代码的属性的最佳实践。
答案 0 :(得分:2)
是的,在上面的示例中,您在为类设置属性值时触发了其他操作,这是使用属性的一个很好的例子。另一个示例是仅具有“获取”访问器的属性,例如
bool paused = false;
public bool Paused
{
get
{
return paused;
}
}
public void PlayMusic()
{
paused = false;
//Do other stuff to play music
}
因此,无论何时您或其他人调用PlayMusic()方法,私有暂停变量都将设置为false;并且“已暂停”属性将使您直接知道状态是否已暂停。重要的是,如果您不希望别人设置某人的状态,则不能直接将其设置为“暂停”状态。它必须是其他动作的副作用(在本例中为PlayMusic())