本节内容:
1:字段是什么
2:属性判断字段的安全
3:对属性的解释
1:字段是什么
字段其实在上一节我们就使用过了:再来详细的说他一说
amespace cw { public enum gender //public 是为了让所有的类都可以使用 { 男, 女 } public class Clerk { //这就是字段了,那么字段一般 是下划线加变量名 _arg ;;字段是用来存放数据 public string _name; public gender _gerder; public int _age;
public void show() { Console.WriteLine("{0}是{1},{2}岁。",this._name,this._gerder,this._age); } } ############调用################# class Program { static void Main(string[] args) { //要想使用别的类要先实例化 Clerk zs = new Clerk(); zs._name = "张三"; zs._gerder = gender.男; zs._age = -24; zs.show(); Console.ReadKey(); } } } //输出:张三是男,-24岁
2:属性判断字段的安全
看到字段输出 了吗?
张三是男,-24岁
what ? 输出的是-24岁这不如何常理啊!可是我字段就是让存放数据的啊,又不能对判断说能不能放,这可怎么办。。。。。
这时候我们的主人公属性就出来了:那么属性的作用是什么呢?
保护字段,对字段的取值与赋值进行限定。
实例:修改上面字段BUG:
说明: 属性往往被声明在字段在下方,并且将字段私有化。 打个比方就是:属性是男人,主外。而女人主内,并且还要将她私有化。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace cw { public enum gender //public 是为了让所有的类都可以使用 { 男, 女 } public class Clerk { //这就是字段了,那么字段一般 是下划线加变量名 _arg ;;字段是用来存放数据 public string _name; public gender _gerder; private int _age; public int Age { get { return _age; } set { if (value < 0 || value > 120) value = 0; _age = value; } } public void show() { Console.WriteLine("{0}是{1},{2}岁。",this._name,this._gerder,this.Age); } } } using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace cw { class Program { static void Main(string[] args) { //要想使用别的类要先实例化 Clerk zs = new Clerk(); zs._name = "张三"; zs._gerder = gender.男; zs.Age = -24; zs.show(); Console.ReadKey(); } } }
3:对属性的说明
通常我们将get和set称为访问器 get属性访问器用于返回属性值 set 属性访问器用于分配新值 属性又分了4种: 1)既读又写,如这个实例; 2)只读,只有一个get访问器 3)只写,只有一个set访问器 4)自动 get ;set