我想在c#中创建一个结构,在其中您具有成对的值,如果设置了一个值,则另一个值自动相反地设置。例如,如果我有一个配对,例如:

{
  public bool Courageous;
  public bool Cowardly;
}


因此,如果两个设置之一,则另一个设置为“未设置”。是否有相关的零和变量之类的东西?

最佳答案

您可以尝试属性

{
    private bool _courageous;
    public bool Courageous
    {
        get
        {
            return _courageous;
        }
        set
        {
            _courageous = value;
            _cowardly = !value;
        }
    }

    private bool _cowardly;
    public bool Cowardly
    {
        get
        {
            return _cowardly;
        }
        set
        {
            _cowardly = value;
            _courageous = !value;
        }
    }
}


或如zzzzbovAmy建议的那样,只有一个后备字段

{
    private bool _courageous;
    public bool Courageous
    {
        get
        {
            return _courageous;
        }
        set
        {
            _courageous = value;
        }
    }

    public bool Cowardly
    {
        get
        {
            return !_courageous;
        }
        set
        {
            _courageous = !value;
        }
    }
}


或没有后备字段,see other answer

{
    public bool Courageous{ get; set; }
    public bool Cowardly { get { return !Courageous; } set { Courageous = !value; } }
}

关于c# - C#中是否存在“零和”变量之类的问题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45581125/

10-16 09:05