首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

c#中,这里说了this的一个用法是作为传入参数,没看懂他说的,他说this作为meclass里的

发布网友 发布时间:2022-04-26 04:57

我来回答

1个回答

热心网友 时间:2023-10-06 04:51

那话说得有问题。。  不是this的用法作为传入参数  这并不是this的用法。


在代码中,this在类里面总是表示当前执行的实例,其指向的是实例的内部引用。


如:

class A {
    string _a;
    void a(){
        this._a = "xx";
    }
}

A a1 = new A();
A a2 = new A();

在上面的代码中,a1和a2就是类A的两个实例。在程序运行的时候,实例a1中的this只会访问分配给实例a1的堆栈,实例a2中的this只会访问分配给实例a2的堆栈。


你不要把this想成特殊的东西,你可以把它想成一个系统的变量就行了,这个变量总是在运行的时候才有效,并且总是指向当前的类实例。在上面你给的代码中,你可以这样理解:

public MeClass() {
    MeClass varName = this;
    ClassHelper ch = new ClassHelper(varName);
}

也就是说,你只需要记得在每个可以实例化的类中,都存在一个指定类实例(表示当前类自己)的this,在需要用到当前类实例的时候灵活使用就可以了。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com