在C#中,如何将默认get与显式集合混合?

时间:2012-07-10 13:11:51

标签: c# .net properties setter automatic-properties

我想做这样的事情:

class Foo
{
    bool Property
    {
        get;
        set
        {
            notifySomethingOfTheChange();
            // What should I put here to set the value?
        }
    }
}

我可以在那里设置值吗?或者我是否必须明确定义get并向该类添加另一个字段?

4 个答案:

答案 0 :(得分:11)

没有办法。

  • 您可以同时使用setter和getter自动实现

    bool Property { get; set; }
    
  • 或手动实施

    bool Property
    {
        get { return _prop; }
        set { _prop = value; }
    }
    

答案 1 :(得分:11)

您有一个默认属性,包含编译器生成的支持字段和getter和/或setter主体,或者自定义属性。

一旦定义了自己的setter,就没有编译器生成的后备字段。你必须自己制作一个,并定义吸气体。

答案 2 :(得分:5)

不是这种情况,自动属性不是最合适的,因此您需要使用正确实现的属性:

class Foo
{
    private bool property;
    public bool Property
    {
        get
        {
            return this.property;
        }
        set
        {
            notifySomethingOfTheChange();
            this.property = value
        }
    }
}

答案 3 :(得分:-3)

在许多情况下,您可以使用“自动属性”功能 例如public int年龄{get;组; } = 43;

这是一个很好的参考书different-ylim-for-shared-axes-in-pandas-boxplot

Naji K。