C#-这是应该如何使用属性的吗?

时间:2019-03-23 15:20:05

标签: c#

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; }(出于什么目的,我不知道)。我想知道的是,以上代码是否是其中包含额外代码的属性的最佳实践。

1 个答案:

答案 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())