A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Kaitong 中级黑马   /  2014-4-4 12:53  /  1094 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Kaitong 于 2014-4-4 22:47 编辑

今天看到调用这一块,看到老师写了个this,在什么情况下用this呢?加不加this有什么区别呢?this代表什么?

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

2 个回复

倒序浏览
this 是C#中的一个保留字,仅限在构造函数和方法成员中使用;
在类的构造函数中使用this表示对正在构造的对象本身的引用,在类的方法中使用this表示对调用该方法的对象的引用,在结构的构造上函数中出现表示对正在构造的结构的引用,在结构的方法中使用this表示对调用该方法的结果的引用;
而且this 保留字不能用于静态成员的实现里,因为这时对象或结构并未实例化;
this 保留字一般用于将对象本身做为参数、声明索引访问器、判断传入参数的对象是否为本身。

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
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;}
       }
    }

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马