Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么C不';t在不明确的名称空间上抛出错误?_C# - Fatal编程技术网

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没有任何变化。同一行上的相同错误。