Csharp/CSharp Tutorial/Language Basics/Namespace Alias
Содержание
Aliasing Class Names
<source lang="csharp">using Class1 = Namespace1.TestClass; using Class2 = Namespace2.TestClass;
namespace Namespace1 {
class TestClass { public TestClass() { System.Console.WriteLine("Hello from Namespace1.TestClass!"); } }
}
namespace Namespace2 {
class TestClass { public TestClass() { System.Console.WriteLine("Hello from Namespace2.TestClass!"); } }
}
class MainClass {
public static void Main() { Class1 Object1 = new Class1(); Class2 Object2 = new Class2(); }
}</source>
Aliasing Namespace Names
<source lang="csharp">using N1 = Namespace1; using N2 = Namespace2;
namespace Namespace1 {
class TestClass { public TestClass() { System.Console.WriteLine("Hello from Namespace1.TestClass!"); } }
}
namespace Namespace2 {
class TestClass { public TestClass() { System.Console.WriteLine("Hello from Namespace2.TestClass!"); } }
}
class MainClass {
public static void Main() { N1.TestClass Object1 = new N1.TestClass(); N2.TestClass Object2 = new N2.TestClass(); }
}</source>
Global Namespace Alias
<source lang="csharp">using System; using System.Collections.Generic; using System.Text; using System.ruponentModel; class Configuration {} namespace My {
class Configuration {} class GlobalNamespaceAlias { static void Main() { Console.WriteLine(typeof(Configuration)); Console.WriteLine(typeof(global::Configuration)); Console.WriteLine(typeof(global::My.GlobalNamespaceAlias)); } }
}</source>
Simple Aliases for namespace
<source lang="csharp">using System; using WinForms = System.Windows.Forms; using WebForms = System.Web.UI.WebControls; using System.ruponentModel;
class SimpleAliases { static void Main() { Console.WriteLine (typeof (WinForms.Button)); Console.WriteLine (typeof (WebForms.Button)); } }</source>
Use the global alias.
<source lang="csharp">using System;
using Ctr = Counter;
namespace Counter {
class MyClass { }
}
// Declare another class called CountDown, which // is in the global namespace. class MyClass { }
class GlobalAliasQualifierDemo {
public static void Main() { Ctr::MyClass m = new Ctr::MyClass(); // Next, create CountDown object from global namespace. global::MyClass m2 = new global::MyClass(); }
}</source>
Using a Namespace Directive
<source lang="csharp">using System;
using Class1 = Namespace1.TestClass; using Class2 = Namespace2.TestClass;
namespace Namespace1 {
class TestClass { public TestClass() { Console.WriteLine("Hello from Namespace1.TestClass!"); } }
}
namespace Namespace2 {
class TestClass { public TestClass() { Console.WriteLine("Hello from Namespace2.TestClass!"); } }
}
class MainClass {
public static void Main() { Class1 Object1 = new Class1(); Class2 Object2 = new Class2(); }
}</source>
Using the alias keyword to refer to a nested namespace.
<source lang="csharp">using CmpDb = Company.InternalClasses.Database.Table; namespace Company.InternalClasses {
public class DBInterface { public static void Open() { System.Console.WriteLine("Opening database"); } } // Define a nested namespace within InternalClasses namespace Database { public class Table { public static void Open(string tblName) { System.Console.WriteLine("Opening table {0}", tblName); } } }
} public class MainClass {
public static void Main() { CmpDb.Open("fred"); }
}</source>