我在庫中有一個像My.Namespace.MyObject
這樣的命名空間的層次結構。我的理解是,如果我將using My.Namespace;
包含在源文件的頂部,那麼我應該可以直接使用Object
。不幸的是,只有輸入完整的My.Namespace.MyObject
,只有Namespace.MyObject
和MyObject
都不起作用。在試圖研究這一點時,我發現它可能發生在類和名稱空間共享名稱時,但對我而言情況並非如此。谷歌真的很難「用不上班」,所以我一直沒有找到可能相關的其他東西。如何避免在Monodevelop中輸入完整的命名空間層次結構(「使用」不起作用)?
一個完整的例子如下。在一個項目中,我做的:
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;
}
}
我會避免使用名字'Object',基本上 - 我懷疑問題是,你還導入'System'命名空間,含'System.Object'。如果'Object'只是一個不幸選擇的示例名稱,請包含一個[mcve],其中包含您看到的確切錯誤。 –
@Ivanna,請參考這個[MSDN C#關鍵字](https://msdn.microsoft.com/en-us/library/x53a06bb.aspx)有關命名約定的文檔,這將爲您節省大量的重新編寫在將來如果你需要將你的班級改爲更有意義的名字。 – MethodMan
這不是實際的命名,我的意思是它是一個對象的通用術語。 – Ivanna