作者bernachom (Terry)
看板C_Sharp
標題[問題] this的使用..
時間Fri May 18 00:45:38 2012
請教一下
最近突然想到this這個問題,試著寫一個小小的程式片段..
發現,我好像沒搞懂...
我的理解是,因為欄位和參數有相同的名稱
參數會把欄位蓋掉
所以要用this,是說我要用這個欄位,而不要參數
然後我就寫了一小段
class thistest
{
public thistest (int testvalue)
{
this.testvalue = testvalue;
MessageBox.Show("testvalue is "+ testvalue);
}
private int testvalue = 20;
}
//==================
private void button1_Click(object sender, EventArgs e)
{
thistest value = new thistest(10);
}
我的想法是說,按下按鈕,傳10進去
用this的話就是10
不用的話就是20
結果...好像加不加this都是10...
然後我另外還有想到一個是..為什麼參數和欄位名稱會是一樣的?
既然會蓋過去,不能設不一樣的就好了嗎?
麻煩前輩教導一下了
謝謝幫忙
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.42.112.154
※ 編輯: bernachom 來自: 114.42.112.154 (05/18 00:47)
推 tnav:欄位?參數? 是指寫在class的類別變數和method內的區域變數嗎? 05/18 02:03
→ tnav:那不論如何運算,你的敘述都是show出區域變數的testvalue 05/18 02:04
→ bernachom:所以是說我的說法是對的,程式寫錯了嗎? 05/18 02:12
→ bernachom:因為我想要試著找出this和沒this的差別 05/18 02:12
→ bernachom:前輩能幫忙指正一下,該如何寫出看得出this差別的程式嗎 05/18 02:13
→ bernachom:謝謝您 05/18 02:14
→ ssccg:this就是代表class本身的instance 05/18 08:28
→ ssccg:理解成加不加this結果不一樣就不對了 05/18 08:29
→ bernachom:我理解錯了,謝謝您 05/18 13:45
推 GhostTW:MessageBox.Show("testvalue is "+ this.testvalue); 05/21 10:00