所以我有一个非常简单的类Id
字段,Id
可以在构造函数中设置。
通常我会使用this
来清楚地标识类属性而不是方法参数。对我来说这似乎更清楚。
IDE0003要我删除this
,并显示“名称可以简化”的消息,这是正确的吗?
这对我来说似乎不太清楚,并且允许套管错误很容易导致id = id
。
答案 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.")]