为了账号安全,请及时绑定邮箱和手机立即绑定

C# this. 是什么意思

C# this. 是什么意思

C#
幕布斯6054654 2018-08-01 17:17:41
public Rectangular(double d){this.width = d;this.height = d;}public Rectangular(double width, double height){this.width = width;this.height = height;}就是这里面的this 有什么用的啊
查看完整描述

2 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

就是指代当前的对象,
public Rectangular(double d)
{
this.width = d;
this.height = d;
}
这个this就是指当前这个Rectangular。
这样在你实例化这个类的时候,调用不同的Rectangular的width和height属性就互不影响了。

追问

是不是这样写的话 上下两个的 width和height 就是两个东西啊 如果不这样写就是上下两个函数里的是同一个啊

为什么我删掉第一个函数里的this不影响运行结果 但删去第二个函数的就影响

追答

构造函数如果参数一样,那样就会出错的,只能删除一个或者修改参数。
删掉第一个函数里的this不影响运行结果 但删去第二个函数的就影响,应该是你实例化的时候调用的是第二个构造函数,就是类似这样的
Rectangular  rectangular  =new  Rectangular (2.5,3.6);

追问

下面是这样的

我删了第一个this运行结果一样

删了第2个运行结果就变成Area  of  rec2  is  0

追答

应该是没有影响的     可能是GetArea方法的问题
这是我的
 public double GetArea()
        {
            return width * height;
        } 我的运行过了是没有影响的


查看完整回答
反对 回复 2018-08-09
?
开满天机

TA贡献1786条经验 获得超13个赞

因为构造函数的参数和对象的属性是同名的,如果你在第二个函数中删除了this,那就产生了歧义了,程序认为等号左边的width和height仍然是参数。只有加了this.以后,程序才能明白你是要给对象属性赋值。

查看完整回答
反对 回复 2018-08-09
  • 2 回答
  • 0 关注
  • 1435 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信