首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

get与set,该如何解决

2012-09-07 
get与set1、public string namepublic string Name{get { return this.name }set { this.name value }

get与set
1、public string name;
  public string Name
  {
  get { return this.name; }
  set { this.name = value; }
  }

2、public string name;
  public string Name
  {
  get;
  set;
  }

请问1和2有什么区别?

[解决办法]
1里的属性和字段建立了关联,而2的则无任何关联,2中的匿名属性会自动创建对应的字段,而不使用你定义的name字段。
[解决办法]
get是外部用来读取你封装的这个字段,而set刚好相反是给该字段赋值的;
1和2 的区别就在于:1 可以通过属性来访问你封装的字段和赋值 而 2却不能。
[解决办法]
第一种:常规写法
第二种:懒人写法

正常使用上是没有区别的
但总会有一些区别
比如:
第二种做不了逻辑判处理

C# code
        private string name;        public string Name        {            get { return this.name; }            set             {                 this.name = value;                if (String.IsNullOrEmpty(name))                {                    name = "newName";                }            }        }
[解决办法]
第一种方法,应该把后备字段定义成私有的。
第二种方法,后备字段已经自动实现了,再写一遍画蛇添足,反而错误。

热点排行