例如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放在那里,很舒服


这种靠集成环境高亮应该可以区分开


推荐阅读:
相关文章