这真的是简化吗?

时间:2015-10-17 13:05:30

标签: c# visual-studio-2015

所以我有一个非常简单的类Id字段,Id可以在构造函数中设置。

通常我会使用this来清楚地标识类属性而不是方法参数。对我来说这似乎更清楚。

IDE0003要我删除this,并显示“名称可以简化”的消息,这是正确的吗?

这对我来说似乎不太清楚,并且允许套管错误很容易导致id = id

enter image description here

4 个答案:

答案 0 :(得分:35)

另一个问题的答案是,您可以配置编辑器以删除行为。我个人喜欢“这个”

Tools > Options > Text Editor > C# > Code Style and check Qualify member access with 'this'

Visual Studio 2015 - Change Light Bulb, Quick Action settings

答案 1 :(得分:8)

this关键字几乎总是不必要的,请参阅When do you use the "this" keyword?

  

允许套管错误轻松导致id = id

这将产生另一个警告:

  

对同一变量进行分配;你的意思是分配其他东西吗?

答案 2 :(得分:4)

如果您使用General Naming Conventions,则this关键字是多余的,因为参数应为id,属性应基于Naming Guidelines Id。所以看起来很清楚:

public int Id 
{ 
   get; 
   private set; 
}


public VSOMessage(int id)
{
    Id = id;
}

请注意,指南本身并未说明,使用或不使用this关键字,但由于C#区分大小写,因此删除{{1}将是一种简化}关键字但当您不使用 命名约定时,您可以命名属性this而不是id,因此您应该使用{{1在这种情况下,关键字。

答案 3 :(得分:0)

如果要防止在代码中显示警告,而不是在更新Visual Studio设置后,请使用SuppressMessage数据批注来防止警告。

它看起来像这样:

[SuppressMessage("Reason #Enter whatever you'd like", "ID, must match what intellsense is showing it looks something like this: IDE0001", Justification = "(optional, your own description")]

这里是您的“此”变量情况的确切示例。

[SuppressMessage("IntelliSenseCorrection", "IDE0003", Justification = "Allowing this variable to consistency/readability of code.")]