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

前端之家收集整理的这篇文章主要介绍了可以在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背景,并且已经发展为失明).

猜你在找的C#相关文章