gpt4 book ai didi

c# - 类型名称 XXXX 在类型 XXXX 中不存在

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

我有以下代码(如果我保留警告,它可以编译并正常工作,我还没有使用 global::hack 对其进行测试):

namespace NotifierService.Models {}

namespace NotifierService
{
using Models;
}

“使用模型”声明带有下划线表示(在错误列表中,这只是一个警告级别的问题):

Using directives for namespace 'NotifierService.Models' should be qualified



所以我然后将其限定为:
using NotifierService.Models;

并得到以下错误级别问题:

The type name 'Models' does not exist in the type 'NotifierService'



附言我知道我可以通过使用以下内容来“破解”它以删除警告/错误,但我试图了解它发生的原因/原因,因为这种影响是应用程序范围内影响多个命名空间的。
using global::NotifierService.Models;

答案: Fildor 给了我一个解决方案......有一个问题,因为在我的 Windows 服务中,基类使用与命名空间相同的名称,因此通过重命名所有命名空间,应用程序编译没有问题(一旦我完全限定了 using 语句。

但是我刚刚实现了一个更简洁的解决方案(因为我更喜欢命名空间与项目具有相同的名称,因为它使将来的引用更加合乎逻辑/可维护):

保持命名空间不变,在我使用 NotifierService.Models 命名空间中的类的地方,我只是简单地引用它们,如下所示:
List<Models.TaxiModel>

这让我可以删除“使用模型”......虽然看起来有点奇怪和“hacky”。

最佳答案

我不完全知道为什么会发生这种情况,但是命名空间和其中的类具有相同的名称可能会导致一些问题。

可悲的是,我没有把这个项目放在发生在我身上的地方,所以我不能重申我遇到的问题。我只知道这是一个问题,这是因为名称相同。

该项目的解决方案是重命名命名空间或类之一。如果我没记错的话,我们重命名了这个类(class)。

关于c# - 类型名称 XXXX 在类型 XXXX 中不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59214675/

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