山东建设管理局官方网站,网站建设方案书内容管理制度,网站不显示内容,深圳宝安西乡属性set和get访问器属性的命名:public int Age { get; set; }, 特点: 它一般不存储数据#xff0c;可以公开接口 也可以在外部进行访问
字段:private私有的 int age 字段可以存储数据#xff0c;一般定义成私有的 目的是保证数据的安全性set和get访问器的区别如果对类里面的字…属性set和get访问器属性的命名:public int Age { get; set; }, 特点: 它一般不存储数据可以公开接口 也可以在外部进行访问字段:private私有的 int age 字段可以存储数据一般定义成私有的 目的是保证数据的安全性set和get访问器的区别如果对类里面的字段进行限制、拦截处理可以在属性的set和get访问器里面进行条件设置set和get访问器 其实就是方法set服务器:给字段设置值的方法带一个参数一般起成value 把value赋值给字段get访问器: 获取字段值的 他是带返回值的 return 字段;例子创建一个class类class People{}1 原始的set和get写法: 先写私有的字段再写公共的属性 添加set和getprivate string name;///这个是私有的字段使用定义 public string Name//公共的属性目的是在外部进行循环 { get { //通过Name获取值 本质获取name的值 Console.WriteLine(111111111111111111); return nameaaaaaa; } set { //设置值通过Name 给name进行赋值,value设置的值 Console.WriteLine(222222222222222222value); value 嘉伟; name value; } }2 如果不想对属性进行任何的操作 可以优化写法private int id; public int Id { get { return id; }set { id value; } }3 C#提供字段和属性的语法糖的写法可以简写一句public bool Sex { get; set; } private int age; public int Age { get { return age; } set { if (value 0 || value 200) { //throw 抛出,Exception异常 //异常的描述信息 throw new Exception(年龄不可能小于0也不可能大于200); } age value; } }4 最后在Main函数里调用People p1 new People(); p1.Name 嘉伟;//在属性赋值的时候 set访问器执行了 p1.Age 20; Console.WriteLine(p1.Namep1.Age----------);//在获取值的时候get服务器执行了 //如果想对属性进行设置限制了可以set和get访问器当中进行设置 People p2 new People(); p2.Name 冰冰; p2.Age 20; Console.WriteLine(p2.Namep2.Age); Console.ReadKey();异常显示Exception 是所有异常的基类new DivideByZeroException(除数不能为0的异常)int b 20;int a b / 0;Console,WriteLine(a);System.StackOverflowException” 内存泄漏 死循环 方法自己调用自己int[] ss new int[] { 1, 2 };Console.WriteLine(ss[3]);new IndexOutOfRangeException()//数组索引值超出范围异常new ArgumentOutOfRangeException(); 参数超出范围的异常构造函数构造函数的含义构造函数目的: 创建对象在构造函数里面给对象成员赋初始值默认有一个无参数的构造函数类名和方法名一样不能写有无返回值也可以定义带参数的构造函数1 创建一个类public class Girls { public string Name { get; set; } public string Hair { get; set; } //下面这个就是无参数的构造函数 public Girls() { Name Baby; Hair 长头发; } }2 在Main函数里使用类Girls g1 new Girls(); Console.WriteLine(g1.Name ------);例子封装一个类Aircraft拥有属性牌子、型号、颜色、隶属公司、飞行速度、装载人数、飞机类型大中小400-200-100由装载人数自动设置、当前飞机装载的人数随机生成1 定义一个类public class Aircraft { public string Type { get; set; } public string Name { get; set; } public string Color { get; set; } public string Company { get; set; }//公司 public int Speed { get; set; }//速度 public int Allcount { get; set; }//装载人数 public string PlaneType { get; set; }//飞机的类型 大 中 小 public int Count { get; set; }//当前人数 private Random r new Random();//随机数对象 随机人数 //定义一个带参数的构造函数 public Aircraft(string n,string t,string c,string com ,int s,int all) { Name n; Type t; Color c; Company com; Speed s; Allcount all;//传递 100 200 400 Count r.Next(0,Allcount);//当前人数 if (Allcount 100) { PlaneType 小飞机; } else if (Allcount 200) { PlaneType 中飞机; } else { PlaneType 大飞机; } } }2 在Main函数使用Aircraft a1 new Aircraft(空军一号,客机,粉色,波音公司,100,100); Console.WriteLine(a1.Namea1.Typea1.Colora1.Companya1.Speeda1.Allcounta1.PlaneTypea1.Count);析构函数析构函数: 当对象不使用的时候会把对象设置为null,再通过GC(垃圾回收机制)进行回收的时候 触发析构函数析构函数的特点: 方法名还是类名 只不过在方法名前加一个~class People { public string Name { get; set; } //析构函数:方法名还是类名 只不过再方法名前加一个~ ~People() { Console.WriteLine(this.Name被释放了); } }People p1new People() {Namezs }; p1 null;//把p1置为null People p2 new People() { Name ls }; People p3 p2; p2 null; p3 null; Console.WriteLine(请按任意键进行回收); Console.ReadKey(true );//用户按键之后再往下执行 GC.Collect();//回收置为null内存空间