这让我很困扰,我发现当与 Intellisense(VS 2008 Pro)结合使用时,我会写出愚蠢的错误:
class Foo
{
public Foo(bool isAction)
{
this.IsAction = IsAction;
}
public bool IsAction { get; private set; }
}
你懂了吗?我当然没有,直到 IsAction 从未改变,导致错误。
Intellisense 以某种方式将“”转换为isA<tab>
“IsAction”,这意味着无论构造函数输入如何,该属性始终为假Foo.IsAction
。简直太棒了。
我不得不说我特别讨厌“隐式this
”(我不知道它是否有正式名称)并且我想将其关闭,因此它永远不会假设它。 有没有办法做到这一点? 这也适用于调用同一类的静态方法。
或者,什么命名约定可以避免这个小问题? 该属性必须保持为“IsAction”,因此它必须是构造函数参数名称的约定。奇怪的是,如果我用完全匹配的拼写来命名它,那么它就可以this.IsAction = IsAction;
正常工作。
问题不在于区分大小写的语言,而是this
. 现在我想起来了,这也更像是一个 VS 2008 Pro 问题而不是 C#。我可以忍受已经编写的代码,this
但我不想在没有它的情况下编写新代码,这意味着告诉 In
诺多林的回答让我思考。
现在我想起来了,这也更像是 VS 2008 的问题,而不是 C#。我可以忍受已经编写的代码而没有this
(尽管如果我在那里乱七八糟的话我会更改它)但是我不想在没有它的情况下编写新代码,这意味着告诉 Intellisense 停止这样做。 我可以告诉 Intellisense 将其关闭吗?