![](/img/trans.png)
[英]How to create a VS 2008 Windows Forms project programmatically, that can be maintained just like any other project created manually
[英]Stacking namespaces can't be referenced just like any other element?
所以這是我制作的一個片段,其中一個命名空間位於另一個內部(B位於A內部)。 通常當您使用“使用SpaceA;”時 您無需輸入SpaceA就可以訪問所有元素。 類A就是這種情況,但是我必須輸入SpaceA.SpaceB才能看到SpaceB。 為什么是這樣? 這是代碼:
using System;
using SpaceA;
namespace SpaceA
{
class A
{
public A()
{
Console.WriteLine("A");
}
}
namespace SpaceB
{
public class B
{
public B()
{
Console.WriteLine("B");
}
}
}
}
namespace TestingCSharp
{
class Program
{
static void Main(string[] args)
{
//This does not work
SpaceB.B x = new SpaceB.B();
//This does work
SpaceA.SpaceB.B y = new SpaceA.SpaceB.B();
}
}
}
通常當您使用“使用SpaceA;”時 您無需輸入SpaceA就可以訪問所有元素。
僅屬於SpaceA
成員的直接類型。 namespace-or-type-name
永遠不會在常規using
指令中使用名稱空間,然后在名稱中using
另一個“子名稱空間”進行解析。 請注意,這與類型的聲明方式無關(就具有嵌套的名稱空間聲明還是僅具有名稱namespace SpaceA.SpaceB
)-另一個示例將是:
using System;
...
Xml.Linq.XElement x = null; // Invalid
有關如何解析名稱的確切詳細信息,請參見C#5規范的3.8節。
與此稍有不同的是,如果您對某個名稱空間使用了using別名指令, 則可以在該位置使用它來查找其他名稱空間
using X = System.Xml;
...
X.Linq.XElement x = null; // Valid
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.