黑马程序员技术交流社区

标题: 关于this的用法 [打印本页]

作者: Kaitong    时间: 2014-4-4 12:53
标题: 关于this的用法
本帖最后由 Kaitong 于 2014-4-4 22:47 编辑

今天看到调用这一块,看到老师写了个this,在什么情况下用this呢?加不加this有什么区别呢?this代表什么?
作者: qiubo    时间: 2014-4-4 13:18
this 是C#中的一个保留字,仅限在构造函数和方法成员中使用;
在类的构造函数中使用this表示对正在构造的对象本身的引用,在类的方法中使用this表示对调用该方法的对象的引用,在结构的构造上函数中出现表示对正在构造的结构的引用,在结构的方法中使用this表示对调用该方法的结果的引用;
而且this 保留字不能用于静态成员的实现里,因为这时对象或结构并未实例化;
this 保留字一般用于将对象本身做为参数、声明索引访问器、判断传入参数的对象是否为本身。
作者: itheima_xu    时间: 2014-4-4 13:39
this 关键字将引用类的当前实例。静态成员函数没有 this 指针。this 关键字可用于从构造函数、实例方法和实例访问器中访问成员。

限定被相似的名称隐藏的成员
将对象作为参数传递到其他方法
声明索引器
class Employee
    {
        public string name;
        public int age;
       public Employee(string name,int age) {
          this. name = name;
          //这里如果不加this, 这时编译器无法辨别代码中的变量age哪个是成员变量,哪个是方法中的参数变量
          this.age = age;   
        }

       public void func1() {
           func2(this); //将Employee对象作为参数传递到DoPrint方法  
       }

       private void func2(Employee employee)
       {
          //方法体
       }
       int[] array = new int[3];
       public int this[int param]   //声明索引器
       {
           get { return array[param]; }
           set { array[param] = value;}
       }
    }





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2