c#的namespace基礎(二){轉載}

來源:互聯網
上載者:User
在一個NAMESPACE中,我們也可以用一個別名指代現有的NAMESPACE或是一些其他類型資料。

別名的使用格式如下:

using 別名 = 一個已經存在的類型;

例如:using soholife = System;


下面我們通過幾個例子來加深一下理解:

namespace N1.N2

{

class A {}

}

namespace N3

{

using A = N1.N2.A;

class B: A {}

}

這裡,在N3中,A是N1.N2.A的別名,而N3.B則繼承於N1.N2.A!同樣的我們也可以用下面的方式來取得同樣的效果:

namespace N3

{

using R = N1.N2;

class B: R.A {}

}


說道這裡,我想提個問題,先看下面的例子:

namespace N1.N2

{

class A {}

}


namespace N3

{

class A {}

}


namespace N3

{

using A = N1.N2.A;

}


如果我們這樣寫,會有問題嗎?

答案當然是肯定的了,錯!因為一個別名必須是在NAMESPACE中唯一的,而上面由於已經有了

class a{},我們在用using A =N1.NE.A;就所以肯定要出錯了!不過如果我們該成:

using B =N1.N2.A;那麼結果如何呢?朋友門自己想想吧!我就不多說了!


本來以為可以結束了,突然發現還有一個地方還沒有說清楚,可以說是就沒有說,呵呵,看來只能晚些回家了,我門還是從問題看起吧:

namespace N1.N2

{

class A {}

}

namespace N3

{

using R = N1.N2;

}

namespace N3

{

class B: R.A {}

}

上面的例子中,不知道大家覺得如何,正確?錯誤?

如果我來回答的話,錯!(呵呵,以前做選擇題養成的習慣,凡是這樣問的答案就是錯!不過原因是說不出來的了!)


真的上面這個程式,先開始看我也以為是正確的,後來才知道。。。,唉,看來還是要多看書的!

原來在一個分開的單元中使用別名的時候,別名只是在它所在的單元中(NAMESPACE或其它)可以使用,而在其他單元中是不能夠用的,所以上面的那個例子中,在第二個N3中使用R的時候,會提示R未知!當然了,如果我們想使用這樣的方式,我們還是有辦法的,就是把別名R寫到N3的外面:如下

using R = N1.N2;

namespace N3

{

class B: R.A {}

}


好了說了這麼多,如果能全部理解的話,我想應該能適當的對NAMESPACE有一些概念了!如果能這樣的話,我的目的也達到了!



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.