【问题标题】:Set and Get in C#在 C# 中设置和获取
【发布时间】:2012-07-03 04:38:58
【问题描述】:

我只是想检查一下我是否理解正确。 get 中的返回值使返回值等于私有实例数据。并且设置值使公共值的值等于私有实例的值。我理解正确吗?

【问题讨论】:

  • 我认为这将是 ACTUAL 行。 设置值使私有实例的值等于公共值的值 例如:set{this.var1 = value;}
  • 我想我是在专门讨论属性。感谢大家的帮助

标签: c# c#-4.0 get set


【解决方案1】:

并非总是如此。

Get 返回开发人员认为属性的值应该是什么,set 更改开发人员认为适合存储数据的任何内容。属性和内部字段之间通常存在一对一的映射,但并非总是如此。

 int UltimateAnswer {get {return 42;}} // no internal field at all
 int Direct
 { 
     get {return _direct;}
     set {_direct = value;}
 }
 int WithConversion 
 {
    get {return _stored * 100;}
    set { _stored = value / 100;}
 }
 int AutoFiled {get;set;} // this one directly maps to automatically created field.  

【讨论】:

    【解决方案2】:

    如果你是财产被定义为:

        private int _value;
        public int Value
        {
            get { return _value; }
            set { _value = value; }
        }
    

    然后是的,get 正在返回私有字段 _value 的值,而 set 正在设置 _value,但它也可能不同。

     public int Value
            {
                get { return getCalculatedValue() } 
                set {
                    if (_value > 0)
                    {
                        _value = value;
                    }
                    else
                    {
                        _value = -1;
                    }
                }
            }
    

    在上面的例子中,get 是从某个名为getCalculatedValue() 的函数返回给你计算的值,set 是验证某个条件的值,然后适当地设置它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多