可以在c#.NET中强制使用’this’关键字吗?

在引用当前实例成员时,是否有办法在Visual Studio中强制使用此关键字?

在构造函数中出现错误的示例:

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
    }
}

代码可能会在以后的某个时间产生臭名昭着的“对象引用未设置为对象的实例”异常.

如何使它工作但仍然很容易错过:

class MyClass
{
    public object Foo { get; set; }
    public MyClass(object foo)
    {
        Foo = foo; // Valid Syntax but unclear.
    }
}

这是有效的语法,但很容易错过.

我想要视觉工作室执行的语法:

class MyClass
{
    public object Foo { get; set; }
    public MyClass(object foo)
    {
        this.Foo = foo; // this is "safe". 
    }
}

如果这个约定被强制执行,我将不得不输入this.Foo = this.Foo来创建与第一个例子中相同类型的错误.

我总是使用这个关键字,因为它使我的生活更容易,而在c#和其他语言之间切换,所以根本不会有任何缺点.

解决方法

您可以通过启用“将警告视为错误”来解决这个问题:

Warning 2 Assignment made to same variable; did you mean to assign something else?

(CS1717如果你想启用它只为这一个)

编译器已经告诉你这个;您应该检查警告(并针对零警告).

中间人不清楚:

Foo = foo;

我不同意 – 这对我来说非常清楚(除非你来自VB背景,并且已经发展为失明).

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...