国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

C# 關于Namespace一點介紹

2024-07-21 02:27:34
字體:
來源:轉載
供稿:網友

(一)namespace講解:
我現在感到學好c#就是就是要知道,c#的基本語法,c#的新的特點,c#能干什么!
其中我感到不管如何,namespace都是很關鍵的,可以說不是只對c#而言,而是整個。net都是由namespace組成的,所以我在看了c#的基本語法后,就直奔namespace來了,在這里寫下自己的一些感覺,希望能對后面學習的人有所幫助。


namespace在新的net環境下編程可以說是無所不在,總之,給我的感覺就是ms的新一代的語言的核心就是namespace,我們可以通過已經有的namespace,做我們想做的和愿意做的,當然如果你感覺現有的還不夠你的使用的話,你也可以自己來使用現有的來擴展,創建自己的namespace!(感覺怎么很象以前的com、dcom呢?)

下面我門說說如何建立一個namespace!
定義一個namespace首先需要包含關鍵詞:namespace
格式如下:
namespace your_nsname
{
//namespase主體內容;
}

呵呵,給我的感覺就好象和class或struct一樣。不過他們除了形式有類似外,確實在很多方面都不相同,具體我們以后會慢慢說到!先往下看。。。

在一個namespace的主體內,可以引用其他的namespace!例如:
namespace your_nsname{
//下面引用system和system.xml著兩個namespace;
using system;
using system.xml;

//namespase主體內容;
}
在上面有一個需要注意的就是,如果要引用namespace的話,那么應該在申明其它類型前引用,如下是錯誤的:
namespace your_nsname{
//其它一些內容;

//由于引用system和system.xml放到了其它語句之后,所以。。。
using system;
using system.xml;
}

另外對于namespace還有一個有趣的地方,就是。。。
我們先看一下下面的的兩個方式:

方式一、
namespace n1.n2
{  class a {}
  class b {}
}

方式二、
namespace n1
{
  namespace n2
  {
   class a {}
   class b {}
  }
}

在上面的良種方式中,第二種很容易就能看懂,是在namespace n1中再創建一個namespace n2,而n2中有兩個類(class)a、b!那么第一種呢?其實上面兩個方式定義的其實是一模一樣的。namespace是可以嵌套定義的,我們可以使用第二種方式,層次感覺比較清楚,也可以使用第一種方式,所不同的是,第一中方式中,在n1和n2之間必須用分隔符“.”來表明他們兩者之間的層次關系!
在使用的時候用如下的方式:
n1.n2.a;
n1.n2.b;

在一個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 {}
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 秭归县| 惠来县| 朝阳县| 临潭县| 永吉县| 红安县| 金门县| 东海县| 尖扎县| 梧州市| 措勤县| 山阴县| 股票| 涿鹿县| 阜新市| 淮安市| 运城市| 安西县| 广汉市| 陇川县| 项城市| 贵南县| 鄂伦春自治旗| 平安县| 涿鹿县| 依安县| 靖宇县| 宜川县| 杭锦旗| 鄂尔多斯市| 平山县| 伊川县| 牟定县| 合肥市| 凌云县| 新丰县| 平顺县| 招远市| 措勤县| 墨竹工卡县| 南靖县|