如何在C#中的设置器中设置值

时间:2019-02-06 04:05:33

标签: c#

我想添加自定义逻辑,如果我的ulong为0(默认值),则将其设置为1。这是我所拥有的:

    private ulong quantity;

    public ulong Quantity
    {
        get
        {
            return this.quantity;
        }

        set 
        {
            if (this.Quantity == 0)
            {
                this.quantity = 1;
                return;
            }

            this.Quantity = this.quantity;
        }
    }

但是,我收到一个编译错误,提示:

Parameter 'value' of 'PurchaseForPayoutRequest.Quantity.set(ulong)' is never used

3 个答案:

答案 0 :(得分:3)

您需要在设置器中使用contextual keyword value

public ulong Quantity
{
    get
    {
        return this.quantity;
    }

    set 
    {
        if (value == 0)
        {
            this.quantity = 1;
            return;
        }

        this.quantity = value;
    }
}

答案 1 :(得分:3)

确保正确使用properties,需要使用value并确保您正在访问备用字段。您的示例也可以通过expression body members?: Operator

进行简化。
private ulong _quantity;

public ulong Quantity
{
   get => _quantity;
   set => _quantity = value == 0 ? (ulong)1 : value;
}

答案 2 :(得分:0)

您需要在最后一行为this.quantity设置值

public ulong quantity
{
    get
    {
        return this.quantity;
    }

    set 
    {
        if (value == 0)
        {
            this.quantity = 1;
            return;
        }
        else
        {
            this.quantity = value;
        }
    }
}

用数量不为0时要分配的数字替换为其他值。