C# '的主观用法;这';在C中# 我来自C++,通常是代码> > 与C语言相比很少使用。根据我的经验,此的使用严格限于范围和/或名称解析

C# '的主观用法;这';在C中# 我来自C++,通常是代码> > 与C语言相比很少使用。根据我的经验,此的使用严格限于范围和/或名称解析,c#,documentation,this,C#,Documentation,This,我的一些同事坚持认为,在任何地方使用this都会让代码“更清晰”。他们基本上依赖于它来进行文档记录。我不同意这种用法,因为就文档而言,它非常主观、多余,而且实际上毫无用处 有些情况下,我看到this.myClassVariable=100。在这种情况下,this除了(根据我的同事的说法)明确说明myClassVariable不是静态变量之外,没有任何实际用途。这只是一个例子 就个人而言,在没有歧义的地方,我使用myClassVariable=100。这一点更清楚,而且我诚实地感觉到,如果您的变量

我的一些同事坚持认为,在任何地方使用
this
都会让代码“更清晰”。他们基本上依赖于它来进行文档记录。我不同意这种用法,因为就文档而言,它非常主观、多余,而且实际上毫无用处

有些情况下,我看到
this.myClassVariable=100。在这种情况下,
this
除了(根据我的同事的说法)明确说明
myClassVariable
不是静态变量之外,没有任何实际用途。这只是一个例子

就个人而言,在没有歧义的地方,我使用
myClassVariable=100。这一点更清楚,而且我诚实地感觉到,如果您的变量名称正确,代码将是自文档化的,不需要“This”


使用“this”的一般经验法则是什么?我要求的用例超出了明显的需求(比如解决歧义)。有些情况下,编译代码需要使用
this
,而我不一定对这些情况感兴趣。你们对使用
这个
作为文档有什么看法?

如果他们想区分静态变量和私有实例变量,为什么不使用命名约定来区分这两者,而不是要求
这个
?例如,对于私有实例变量,使用下划线作为前缀,并使用驼峰大小写命名(例如
\u myVariable
)。然后,对于静态变量,使用不带前缀的Pascal大小写(例如,
MyStaticVariable
)。它允许简单地消除静态变量和实例变量之间的歧义,并且不需要额外的按键和
所需的一般“丑陋”

如果他们想要区分静态变量和私有实例变量,为什么不使用命名约定来区分这两个变量,而不是要求
?例如,对于私有实例变量,使用下划线作为前缀,并使用驼峰大小写命名(例如
\u myVariable
)。然后,对于静态变量,使用不带前缀的Pascal大小写(例如,
MyStaticVariable
)。它允许在静态变量和实例变量之间进行简单的消歧,并且不需要额外的按键和
这个
所需的一般“丑陋”我个人强烈反对这种用法。使重构变得非常困难-如果您想将变量更改为静态或局部变量,您必须检查所有使用点,并消除
这一点。


这种用法可能是由PHP或Python驱动的,而PHP或Python是必须的。

我个人强烈反对这种用法。使重构变得非常困难-如果您想将变量更改为静态或局部变量,您必须检查所有使用点,并消除
这一点。


这种用法可能是由PHP或Python驱动的,因为PHP或Python是必须的。

当您的同事说它使代码更清晰,而您说它使代码更不清晰时,这就告诉您这是一个主观的话题。如果把100名C#开发者放在一个房间里,我想这将接近50/50。这可能应该转移到程序员身上。有两种思想流派:1。那些说字段不应该加前缀的人,例如,
myClassVariable
是字段的正确名称。他们需要
这个。
正是因为他们告诉你:要知道他们正在访问一个成员变量,而不是一个本地变量。2.那些说字段应该加前缀的人——无论是
m_
还是
。他们不需要这个
,也不使用它。我同意你的观点,在任何地方使用这个.myVariable似乎都没有必要,在我看来,这实际上会使代码看起来更混乱,因此可读性更低。但我的公司在文档方面并不是很大!当你的同事说它让代码更清晰,而你说它让代码更不清晰时,这就告诉你这是一个主观的话题。如果把100名C#开发者放在一个房间里,我想这将接近50/50。这可能应该转移到程序员身上。有两种思想流派:1。那些说字段不应该加前缀的人,例如,
myClassVariable
是字段的正确名称。他们需要
这个。
正是因为他们告诉你:要知道他们正在访问一个成员变量,而不是一个本地变量。2.那些说字段应该加前缀的人——无论是
m_
还是
。他们不需要这个
,也不使用它。我同意你的观点,在任何地方使用这个.myVariable似乎都没有必要,在我看来,这实际上会使代码看起来更混乱,因此可读性更低。但我的公司在文档方面并不是很大!