Visual Studio IntelliSense建议失败

4
我有一个与IntelliSense相关的问题,它让我疯狂,我保持冷静了一个月,但现在无法忍受了。 IntelliSense一直建议一些明显不正确的东西。
比如说我有一个名为“PlayerModel”的类和一个该类型的字段/参数名为“playerModel”。
当我开始输入“player”时,我期望建议列表将从字段/参数开始,而不是从类开始,尤其是因为该类显然不包含我可能正在使用的公共常量或其他任何内容。 但事实并非如此,每次IntelliSense都会给我这个:

enter image description here

显然我想引用参数而不是类。即使我需要给一个字段赋值,这也不起作用。
PlayerModel anotherPlayerModel = player...

它还会建议使用类而不是该参数。因此,每次我需要手动选择第二个(正确的)建议。

请帮忙,我认为这应该是常识。谢谢!

这是我的安装包细节:

Microsoft Visual Studio Community 2017
版本 15.8.5
VisualStudio.15.Release/15.8.5+28010.2036
Microsoft .NET Framework
版本 4.7.02556

已安装版本:Community

C# 工具 2.9.0-beta8-63208-01
FormatDocumentOnSave 1.0
NuGet 包管理器 4.6.0
ProjectServicesPackage 扩展程序 1.0
Visual Basic 工具 2.9.0-beta8-63208-01
Visual Studio Code 调试适配器主机包 1.0
Visual Studio Unity 工具 3.8.0.7

这是我的PlayerModel类:(忽略与Unity相关的内容,它与类的结构无关)

using UnityEngine;
using static Constants;

public class PlayerModel : ObjectModel {

    public int userId;

    public int activeItemIndex;

    public int kills;

    public PlayerModel(int id, Vector3 position, Quaternion rotation, float hitpoints, int userId, int activeItemIndex) : base(id, ObjectType.PLAYER, position, rotation, hitpoints) {
        this.userId = userId;
        this.activeItemIndex = activeItemIndex;
    }
}

你能在PowerShell中运行命令“Get-WinSystemLocale”并报告结果吗?此外,你的观点是错误的,将PlayerModel作为建议是“不正确”的。在C#中,有许多原因可以使用类名,包括静态方法、强制转换等。最后,当你尝试访问IntelliSense列表时,你是否用大写字母“P”输入了“PlayerModel”? - Jazimov
你好,@Jazimov,不,我没有大写"P",我从小写字母'p'开始输入,建议总是类。你是正确的,我可能想使用静态方法和转换等,但这不是情况,正如我所说,没有静态字段/方法。每当建议弹出窗口出现时,它都会继续执行此操作,因此与此案例无关。这是我的本地信息:“1026 bg-BG Bulgarian(Bulgaria)”。 - Martin Asenov
你在开始使用VS Community 2017时遇到了这个问题吗?请分享PlayerModel类和字段/参数playerModel的详细代码,我将使用相同的VS Community 2017版本在我的端上进行检查,看看是否可以重现此问题。 - Sara Liu - MSFT
你好,Sara,我已经更新了问题,包括包信息和PlayerModel类的定义。 - Martin Asenov
@SaraLiu-MSFT,你是否成功复现了它? - Martin Asenov
可能是自动完成大小写问题的重复。 - Hans Passant
1个回答

0
请尝试将您的地区设置从 1026 bg-BG 切换到 1033 en-US 进行测试。因此,首先关闭所有 Visual Studio 实例,应用区域设置更改,然后重新启动 Visual Studio。我怀疑这可能会解决问题。如果确实如此,那么您可以决定要继续使用哪个国际设置...

我已经修改了它,让我玩一下看看是否有效。出于好奇,为什么这样的更改会解决那个问题? - Martin Asenov
它没有解决问题,我仍然首先得到类建议,即使有一个名为该字段/参数的存在(我在问题中更新了截图)。 - Martin Asenov
一些排序函数会依赖于区域设置。我没有使用Visual Studio Community版,但是在Visual Studio Enterprise的IntelliSense中,我看到小写项排在大写项之前。您是否可以在您的工作站上访问非社区版的VS,以查看是否可能是社区IDE问题? - Jazimov
很遗憾,我的使用是在家里进行的,所以它不是商业项目。 - Martin Asenov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接