微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

可以在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背景,并且已经发展为失明).

原文地址:https://www.jb51.cc/csharp/93033.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐