c#自动属性
2012-09-09 20:06
113 查看
例如下面 class myClass{ //一般属性用法 privae string name; public string Name{ get { return name;} set { name = value;} } //自动属性 public string Name{ get; set; } }
C#中用get和set对类的属性进行访问和设置,保障类中数据的安全。自动属性是不对字段进行逻辑验证的操作.由于自动属性可以省略后背字段,结果我很多时候都会忍不住用自动属性,而且代码也比带后备字段的属性来的明了。这样子写,这两种方法没任何区别.
那么什么情况下用一般写法 什么情况下用自动写法? 你需要对这个变量做一些限制的时候 比如:
String username; 你想限制这个用户名只能有10个字符长度 public String UserName { get{return username;} set{if(value.Length<=10){username=value;}} }
简单的不需要限制的直接存取的就省力点用自动属性,而需要做出限制的就加个后背字段重新实现一次属性. 另外:使用get/set,最主要的是基于oop思想编程,使得“属性和行为分离”。通过get/set可以设置某属性只读,也可以控制到某一层可读/可写,也可以通过设置条件使数据合法等。
class A { private int_x; public int x { get{return _x;} protected set { if(value>=0) { _x=value; } } } }
其实,上述例子不使用get/set也同样可以做到,不过get/set使用起来更方便,清晰。
相关文章推荐
- c#语法糖代码——自动属性, 匿名类型,对象与集合初始化器,扩展方法
- VSTS小技巧之使用IDE的宏,自动为c#变量生成属性
- C#集合篇,在业务背景下(***产品升级管理):依赖注入,变量声明,三元表达式,常用字符串相关操作方法,ADO.NET,EF机制,T4模板自动生成实体类,ref变量巧用,属性实际运用,唯一性验证
- c#4.5新语法--自动属性和隐式类型
- 自动实现的属性(C# 编程指南)(摘自MSDN)
- C#编程之自动实现的属性
- C#3.5自动属性(小技巧)
- 步步为营VS 2008 + .NET 3.5(3) - C# 3.0新特性之Automatic Properties(自动属性)、Object Initializers(对象初始化器)、Collection Initializers(集合初始化器)和Ext
- VS2008&C#3.5语言特色系列[视频]:自动属性(Automatic Properties)
- C# 3.0 新特性之 自动属性 --by winter
- 收藏:使用Visual Studio 2005 IDE的宏,自动为c#变量生成属性
- C#中属性和自动属性的区别
- Orcas中C#语言的新特性:自动属性,对象初始化器,和集合初始化器
- C# 3.0 的自动属性(Automatic Properties)
- C# 3.0 的自动属性(Automatic Properties)
- [C#详解] (1) 自动属性、初始化器、扩展方法
- VS 2008 + .NET 3.5 - C# 3.0新特性之Automatic Properties(自动属性)、Object Initializers(对象初始化器)、Collection Initializers(集合初始化器)和Extension Methods(扩展方法)
- C#读取对象实例的值和对对象的属性自动赋值方法
- [读书笔记]C#学习笔记五: C#3.0自动属性,匿名属性及扩展方法
- C#中的自动属性、隐式类型var、对象初始化器与集合初始化器、扩展方法