Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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# 如何避免在Monodevelop中键入c对象的完整命名空间层次结构(“使用”不起作用)?_C#_Import_Namespaces_Monodevelop - Fatal编程技术网

C# 如何避免在Monodevelop中键入c对象的完整命名空间层次结构(“使用”不起作用)?

C# 如何避免在Monodevelop中键入c对象的完整命名空间层次结构(“使用”不起作用)?,c#,import,namespaces,monodevelop,C#,Import,Namespaces,Monodevelop,我在库中有一个类似于My.Namespace.MyObject的命名空间层次结构。我的理解是,如果我使用.Namespace包含在源文件的顶部,我应该能够直接使用对象。不幸的是,只有当我键入整个My.Namespace.MyObject时,它才起作用,而Namespace.MyObject和MyObject都不能单独起作用。在尝试研究这一点时,我发现当类和名称空间共享名称时,可能会发生这种情况,但对我来说并非如此。因为“使用不起作用”很难在谷歌上搜索到,所以我没能找到更多可能相关的信息 下面是一

我在库中有一个类似于
My.Namespace.MyObject
的命名空间层次结构。我的理解是,如果我使用.Namespace包含
在源文件的顶部,我应该能够直接使用
对象
。不幸的是,只有当我键入整个
My.Namespace.MyObject
时,它才起作用,而
Namespace.MyObject
MyObject
都不能单独起作用。在尝试研究这一点时,我发现当类和名称空间共享名称时,可能会发生这种情况,但对我来说并非如此。因为“使用不起作用”很难在谷歌上搜索到,所以我没能找到更多可能相关的信息

下面是一个完整的例子。在一个项目中,我做:

namespace My {
   namespace Namespace {
       public struct MyObject {}
   }
}
然后我构建了一个dll文件。在第二个项目中,我添加dll作为引用,然后执行以下操作: 使用My.Namespace

public class AnotherObject
{
   public static void Main()
   {
      //results in a compilation error, while My.Namespace.MyObject doesn't
      MyObject a;
   }
}

项目A,编译成
LibraryTest.dll

namespace FirstLevel
{
    namespace SecondLevel 
    {
        public class LibraryClass
        {
            public LibraryClass()
            {
            }

            static void Main() 
            {
            }
        }
    }
}
Project B,只是一个控制台应用程序,使用Project a库:

using FirstLevel.SecondLevel;

namespace ConsoleTest
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            LibraryClass test = new LibraryClass();
        }
    }
}
重要提示:确保将您的库添加到其他项目中的
参考

  • 右键单击
    参考
    ->
    编辑参考…
  • 切换到
    .NET汇编
  • 点击
    浏览…
  • 选择您的库
另请参见随附的屏幕截图


基本上,我会避免使用名称
对象
,我怀疑问题在于您还导入了
系统
名称空间,其中包含
系统.对象
。如果
Object
只是一个不幸选择的示例名称,请包含一个包含您所看到的确切错误的名称。@Ivana,请参阅本文档中有关命名约定的内容。如果您必须将类更改为更有意义的名称,这将节省您以后大量的重写。这不是实际的命名,我的意思是它是一个对象的通用术语。同一个项目中的两个文件可以正常工作,问题是当我在Monodevelop中导入库时。我猜这可能与构建选项或类似的东西有关。对不起,似乎我没有足够正确地阅读你的帖子。。。我刚刚做了另一个测试,现在有一个库,请看我编辑的答案。