C# 为什么C不';t在不明确的名称空间上抛出错误?
假设我们有两个具有不同名称空间的项目C# 为什么C不';t在不明确的名称空间上抛出错误?,c#,C#,假设我们有两个具有不同名称空间的项目 using Models = SharedClasses; namespace MainAspNetMvcApplication{ private void Method1(){ var c = new Models.Cat(); //Error CS0234 The type or namespace name 'Cat' does not exist in the namespace 'MainAspNetMvcApp
using Models = SharedClasses;
namespace MainAspNetMvcApplication{
private void Method1(){
var c = new Models.Cat();
//Error CS0234 The type or namespace name 'Cat' does not exist in the namespace 'MainAspNetMvcApplication.Models' (are you missing an assembly reference?)
}
}
namespace MainAspNetMvcApplication.Models{
//There is no class `Cat` in this namespace
public class Dog {
...
}
...
}
我添加了对SharedClass
的引用,其中包含以下代码
namespace SharedClasses{
public class Cat{
//The code for shared classe (Cat)
}
}
这更像是一个模棱两可的模型
错误。然而,C#假设当前项目模型名称空间,并抛出CS0234
错误
为什么默认情况下c#假设当前项目模型名称空间,而我已经提到将模型用于共享类
对于我来说,使用Models=sharedclass的应该考虑最高优先级代码>
不应该至少让我知道我有两个模棱两可的模型而不是选择一个吗
只是好奇为什么C#设计成这样。虽然我正在寻找语言设计师来回答任何其他相关的问题,但我还是欢迎他们的回答。没有别名是不同的
using Models = SharedClasses;
现在,Models
是一个别名而不是名称空间,因此它不是含糊不清的名称空间。有多个规则概述了别名的行为。您可以在此处找到它们:
您是否包含了名称空间或在某处放置了程序集引用@devRicher我添加了参考,它也包含在usingmodels=sharedclass中代码>如果您不使用Models=SharedClass怎么办?请澄清您的问题。你想要规范参考(AFAIK,行为,你看,符合规范)?或者你想让语言设计师回答,为什么他们会这样设计C?@mayu没有任何变化。同一行上的相同错误。