get的真正目的是什么,在c#中设置属性?

What is the real purpose of get,set properties in c#?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicates:
Properties vs Methods
C#: Public Fields versus Automatic Properties

  • get,set的真正目的是什么?属性在C?
  • 任何好的例子,我什么时候应该使用get,set属性…


您需要它们控制对象私有字段值。例如,如果您不想为整数允许空值或负值。此外,封装对于触发对象成员值更改事件也很有用。例子

1
2
3
4
5
6
7
8
9
10
11
12
  bool started;
    public bool Started
    {
        get { return started; }
        set
        {
            started = value;
            if (started)
                OnStarted(EventArgs.Empty);
        }

    }

另一个例子

1
2
3
4
5
6
7
8
9
10
11
    int positiveNumber;

    public int PositiveNumber
    {
        get { return positiveNumber; }
        set {
            if (value < 0)
                positiveNumber = 0;
            else positiveNumber = value;
        }
    }

另外,只读属性的另一个实现可能如下

1
2
3
4
5
6
7
    int positiveNumber;

    public int PositiveNumber
    {
        get { return positiveNumber; }

    }

你是指属性还是关键词get; set;

属性:简单地说,属性是智能字段。聪明的人,你可以添加逻辑,当你想得到或设置的价值。用法示例:如果要验证设置为属性的值,或者要组合不同字段的值,而不将这些字段公开。

关键词:这是一个C的简写,用来创建一个带有支持字段(存储值的字段)的属性。当您开始一个新的代码并希望尽早完成接口时,它是有用的。