2020年8月28日 星期五

C# Namespace and Using (轉貼)

 

這樣全階層寫很累耶!!所以可以使用using的方式在檔頭載入,如下

using System;
using MyOwnNameSpace.AppOneFunction;
using MyOwnNameSpace.AppTwoFunction;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            PrintScreen.Print();
            PrintScreen.Print();
        }        
    }
}

但上例是無法使用的,因為我們有說到命名空間可以避免名稱衝突,所以在全部階層都寫的情形下,它允許不同的命名空間可以有相同的成員名稱.

但因為我們使用了using後,把前面的階層拿掉了,你會發現上例的PrintScree.Print()無法明確的判斷到底是那個namespace下的.

解決方法就是使用命名空間的別名,例子如下

using System;
using AppOne = MyOwnNameSpace.AppOneFunction;
using AppTwo = MyOwnNameSpace.AppTwoFunction;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            AppOne.PrintScreen.Print();
            AppTwo.PrintScreen.Print();
        }        
    }
}

這樣程式就能明白你指的是那個PrintScreen.Print()了.

那如果自定義的命名空間不是和你的Main()放在一起的呢??

那你在做自定的命名空間時就要選類別庫的選項來開發,編譯後你會發現在你的專案目錄中有一個相同名稱的DLL檔

你要在你的Main()的專案中,使用加入參考的專案方式,使用檔案瀏覽找到要加入的DLL檔,之後就可以用using的方式加入了.

沒有留言:

張貼留言