基于另一个属性的 C# 属性 [已关闭]

问题描述 投票:0回答:1

下面给出了请求的一小部分,其中两个属性相互依赖。

我需要这样做:

如果发送了

DisableMessages
并且未通过 API 发送
MessagesOn
,则默认
MessagesOn
为 false。

如果未发送

DisableMessages
且未发送
MessagesOn
,则默认
DisableMessages
为 false,
MessagesOn
为 true。

public class CreateRequest
{
    public bool DisableMessages { get; set; }

    public bool MessagesOn { get; set; }
}
c# .net properties request
1个回答
2
投票

使用支持变量和可为 null 的类型。我把

MessagesOn
留给你安排。

public class CreateRequest
{
    bool? disableMessages;
    bool? messagesOn;

    public bool? DisableMessages { 
        get { return this.disableMessages == null && messagesOn == null ? false : this.disableMessages;} 
        set { this.disableMessages = value;} }

    public bool? MessagesOn { get {return /* DisableMessages is sent and MessagesOn is not sent */;} set { this.messagesOn = value;} }
}
© www.soinside.com 2019 - 2024. All rights reserved.