gpt4 book ai didi

c# - 命名空间外的 using 语句被识别为不同的命名空间

转载 作者:行者123 更新时间:2023-12-04 16:54:40 29 4
gpt4 key购买 nike

我的课上有一些 using 语句。 ReSharper 说我需要添加另一个命名空间,所以我让它添加它。它将它添加到顶部,命名空间声明之外,我们都很好。

但是 StyleCop 说 using 需要在命名空间声明中。所以我将 using 语句移到里面,但是当我将鼠标悬停在 using 语句上时,它说它是一个不同的命名空间。下面的例子:

using Owin; // when I hover, it shows up as "Owin", which is correct

namespace MyCompany.Sales.Web
{
using System.Configuration;
using System.Web.Http;

向下移动后,它看起来像这样:
namespace MyCompany.Sales.Web
{
using System.Configuration;
using System.Web.Http;
using Owin; // but when I hover, it shows up as "MyCompany.Owin"

如何阻止 Visual Studio 认为它需要命名空间的“MyCompany”部分。请记住,有一个名为“MyCompany.Owin”的命名空间,但我在项目中没有对它的引用。

最佳答案

我不知道为什么会发生这种情况或如何避免这种情况,但一种方法是指示 C# 编译器在尝试解析名称之前从全局命名空间开始。

您只需在命名空间前面加上 global::修饰符(是的,里面有两个冒号),如下所示:

using global::Owin;

您也可以在类型上使用此“技巧”,假设您有一个名称与其他名称匹配的接近类型,并且无论命名空间和诸如此类的哪种组合,编译器仍然认为它应该使用您的接近类型(通常是这个表明您的名字不好,但这是一个不同的问题):
using (var stream = new global::System.IO.FileStream(...))

关于c# - 命名空间外的 using 语句被识别为不同的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34514757/

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