例如cs文件this.button1.Enabled=true被優化為button1.Enabled=true。感覺這樣可讀性很差,區別不了控制項還是一般類。


1,微軟從節省勞動量的角度出發,能省略的就推薦盡量省略,畫蛇添足沒必要,除非你在方法中定義了和某個類成員同名的變數,此時加上this以做區別是必要的。

2,不只是WinForm,VS里的所有工程都會推薦開發者省略this以及其他所有可以簡化的寫法。C#搞出那麼多語法糖就是為了能讓你比其他語言少打幾個字母。

3,問題描述里說不加this沒法區分控制項還是一般類,這完全是命名的問題,跟加不加this沒有任何關係。我在窗體類里加一個不是控制項的成員,你加上this就能看出來?非要解決這個問題,你可以試試早已過時的匈牙利命名法。事實上,button1看不出來是一個表示按鈕的控制項嗎?建議多背幾個單詞。

4,VS後台自動生成的代碼倒是都加上了this的,如果你有心查看過InitializeComponents方法的實現。


除非個別比如變數名同名的情況,畫蛇添足的寫 this 都要打屁股。


不止winform,所有c#的類方法調用當前對象屬性、欄位、方法的時候都會這麼建議

有人讓我試試2019


要麼省略,要麼不省略,就這兩種選擇。其實說不上哪個好或者不好吧,只是一種習慣,但VS肯定要給出一個默認的設置才行。

另外那個真的是推薦的嘛……你可能只是看到了一個重構的提示?去掉之後滑鼠移上去指不定又提示你可以添加this了……

不過我記得確實是有這一項偏好設置的。我習慣是加this,甚至把它調成了「信息」級別,就是錯誤列表裡會顯示,但也可以編譯的那種。


VB5/6和VS2002/2003的IDE智能感知不完善,因此,程序員習慣寫 this. 或者 Me. 去看窗體的成員(如果他記不得的話),2005以後的IDE改進了,直接敲就有提示,所以這麼寫沒必要了。


這是this的問題嗎……

難道加了this

你能就能確認

button1是什麼了嗎?

你這是命名問題啊……

你應該自己取名為SubmitUserInfoButton。

你這還好寫的不是js,不然得被this搞死……


一般來說這種提示都是可以改的,改成你自己習慣的方式就行。

好久不用VS了,具體位置記不清了。

不過先得確認提示你的是VS自己還是你安裝的插件例如resharper之類的。


button1.Enabled 可讀性確實差,

但是通常我們會這麼寫:

m_Button1.Enable

_Button1.Enable

_button1.Enable

mButton.Enable

再不濟至少也是Button1.Enable

確實不怎麼會寫button1.Enable來讓可讀性變差,然後在強行用this增加可讀性


其實我也習慣使用this,這樣我一眼就能看出來這個屬性或欄位是本類的,如果是從父類繼承過來的我會加上base.

習慣問題,不加this其實也是默認屬於本類,但不加base我就有點難受了


VS有這個推薦么。。。也許是你的查件?或者其實可以忽略。。我也喜歡寫this和base 沒有的通常是靜態的。。。


我喜歡看著淺藍色可以省略的this放在那裡,很舒服


這種靠集成環境高亮應該可以區分開


推薦閱讀:
相关文章