【发布时间】:2011-08-18 09:03:33
【问题描述】:
在引用当前实例成员时,有没有办法在 Visual Studio 中强制使用 this 关键字?
构造函数中的错误示例:
class MyClass
{
public object Foo { get; set; }
public MyClass(object foo)
{
Foo = Foo; // this should of course be lowercase but it's easy to miss
}
}
此代码稍后可能会在某处生成臭名昭著的'object reference not set to an instance of an object' 异常。
如何让它工作但仍然很容易错过:
class MyClass
{
public object Foo { get; set; }
public MyClass(object foo)
{
Foo = foo; // Valid syntax but unclear.
}
}
这是有效的语法,但很容易错过。
我希望 Visual Studio 强制执行的语法:
class MyClass
{
public object Foo { get; set; }
public MyClass(object foo)
{
this.Foo = foo; // this is "safe".
}
}
如果强制执行此约定,我将不得不输入 this.Foo = this.Foo 来创建与第一个示例相同类型的错误。
无论如何,我总是使用this 关键字,因为它使我在 c# 和其他语言之间切换时的生活更轻松,因此根本不会有任何缺点。
【问题讨论】:
-
如果您使用 fxcop,Visual Studio 会在您犯第一个错误时发出警告
-
正如你所说,我认为这不会对你遇到的问题产生任何影响,我建议将参数的名称改为
bar,这样你就不会有什么问题。
标签: c# visual-studio visual-studio-2010 syntax conventions