gpt4 book ai didi

c# - 如何在 C# 中禁用隐式 "this"?

转载 作者:太空狗 更新时间:2023-10-29 19:57:54 25 4
gpt4 key购买 nike

这让我很困扰,我发现我在与 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无论构造函数输入如何,始终为 false。太棒了。

我不得不说,我特别讨厌“隐式 this”(我不知道它是否有正式名称),我想将其关闭,这样它就永远不会假设它。 有没有办法做到这一点?这也适用于调用同一类的静态方法。

或者,什么命名约定可以避免这个小问题? 该属性必须保留为“IsAction”,因此它必须是构造函数参数名称的约定。奇怪的是,如果我用完全匹配的拼写命名它,那么 this.IsAction = IsAction;正确运行。

问题不在于区分大小写的语言,而在于 this 的隐含性.现在我想起来了,这更像是一个 VS 2008 Pro 问题,而不是 C#。我可以忍受已经编写的没有 this 的代码但我不想在没有它的情况下编写新代码,这意味着告诉 In


诺多林的回答让我开始思考。

现在我想起来了,这更像是一个 VS 2008 问题,而不是 C#。我可以忍受已经编写的没有 this 的代码(尽管如果我在那里闲逛,我确实会更改它)但我不想在没有它的情况下编写新代码,这意味着告诉 Intellisense 停止这样做。 我可以告诉 Intellisense 关闭它吗?

最佳答案

我刚刚在 Visual Studio 2008 中尝试了您的代码。打开内置静态分析会产生以下错误:

Warning 3 CA1801 : Microsoft.Usage : Parameter 'isAction' of 'Foo.Foo(bool)' is never used. Remove the parameter or use it in the method body.

我的建议是打开它,您会尽早发现此类错误。要启用此功能,请从项目的上下文菜单中选择属性,然后选择“代码分析”选项卡并选择“在构建时启用代码分析”

关于c# - 如何在 C# 中禁用隐式 "this"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/957766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com