C#:当两个命名空间相似时,尝试解决类的问题
发布时间:2020-12-15 06:32:07  所属栏目:百科  来源:网络整理 
            导读:我遇到一个问题,我不能在不同的命名空间中引用一个类.我有两个班: namespace Foo{ public class Class1 { ... }}namespace My.App.Foo{ public class Class2 { public void SomeMethod() { var x = new Foo.Class1; // compile error! } }} 编译错误是: Th
                
                
                
            | 
                         我遇到一个问题,我不能在不同的命名空间中引用一个类.我有两个班: 
  
  
  
namespace Foo
{
    public class Class1 { ... }
}
namespace My.App.Foo
{
    public class Class2
    {
        public void SomeMethod()
        {
            var x = new Foo.Class1; // compile error!
        }
    }
} 
 编译错误是: 
 在这种情况下,我似乎无法让Visual Studio认识到“Foo.Class1”是指第一类.如果我将鼠标悬停在“Foo”上,则表明它试图将其解析为“My.App.Foo.Class1” 如果我把行: using Foo; 在包含Class2的.cs文件的顶部,它也解析为“My.App.Foo”. 引用正确的“Foo”命名空间是否有一些技巧,而不必重命名名称空间,以便它们不冲突?这两个命名空间都在同一个程序集中. 解决方法
 您可以使用global ::全局限定命名空间:global :: Foo.Class1应该可以工作. 
  
  
        您也可以将全局:: Foo别名,使事情变得更容易.在您的源文件的顶部,在您的using语句下,添加: using AliasClass1=global::Foo.Class1; 现在你可以使用: AliasClass1 c = new AliasClass1(); // and so on. 当然,你可以使用比AliasClass更好的名字:-) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
