.NTE 基础 之对象

来源:互联网 发布:不喜欢自拍的女生 知乎 编辑:程序博客网 时间:2024/06/17 01:13

-----对象  类

类 : 数据成员 + 函数成员

数据成员:字段+常量+事件成员

常量:修饰词  const   : public  const  string a = "hello"  ;

函数成员:方法 + 属性 + 构造函数+终结器(finalize) + 运算符 + 索引器

     方法:给方法传递参数: 按值传递   +  按引用传递

  按引用传递   有关键词   ref   和 out 

ref 要求对传递给方法的的参数 初始化, out 则不必

int a; aa(ref a);  // 编译时报错,提示a 没初始化 public static void aa(ref int i) {     i++;}

int a;aa(out a);public static void aa(out int i){    i = 0;    i++;}


     

方法的重载:相同函数名,不同的参数个数 或类型  (如构造函数)


属性:

一般的属性申明:

private int age;public int Age{    get { return age; }    set { age = value; }}
 ====》如果没有任何逻辑 可自动实现属性 等价于    public int Age { get; set; }



构造函数:

静态构造函数:只会执行一次,类加载的时候执行,普通构造函数,实例化的时候就会执行

只读字段 :

于 const 区别 : 不用一开始就初始化,可以再构造函数中赋值,其他地方不可以


匿名类: 

var preson = new { FirstName = "zhang", LastName = "cheng", age = 33 };

结构 :

结构不允许定义无参构造函数,因为系统自动实现,所以不能再 定义结构成员变量时初始化

        结构申明方式 类似于类   

aa a = new aa()  也可  aa  a;


扩展方法: 不能改变源码,而增加源码中的方法

见代码

//定义类 class CC    {        int c;        public int C        {            get { return c; }            set { c = value; }        }        public void add()        {            this.C--;        }    }//定义静态类  static class CcE    {        public static void decue(this CC c, int i)    //这变的两个参数第一个为 要增加的原始类        {            c.C--;        }    }//调用方法中   CC C = new CC();   C.C = 10;   C.decue(1);




0 0