亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 1477 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號