成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#中的Namespace詳解

開發(fā) 開發(fā)工具 后端
Namespace既名稱空間,VS.NET中的各種語言使用的一種代碼組織的形式,通過名稱空間來分類,以區(qū)別不同的代碼功能,同時也是VS.NET中所有類的完全名稱的一部分。本文對C#中的Namespace進行了介紹,希望可以對初學者有所幫助。

我現(xiàn)在感到學好C#就是就是要知道C#的基本語法,C#的新的特點,C#能干什么!

其中我感到不管如何,NAMESPACE都是很關(guān)鍵的。可以說不是只對C#而言,而是整個.NET都是由NAMESPACE組成的。所以我在看了C#的基本語法后,就直奔NAMESPACE來了,在這里寫下自己的一些感覺,希望能對后面學習的人有所幫助。

NAMESPACE在新的.NET環(huán)境下編程可以說是無所不在。總之,給我的感覺就是MS的新一代的語言的核心就是NAMESPACE,我們可以通過已經(jīng)有的NAMESPACE,做我們想做的和愿意做的。當然如果你感覺現(xiàn)有的還不夠你使用的話,你也可以自己來使用現(xiàn)有的來擴展,創(chuàng)建自己的NAMESPACE!(感覺怎么很象以前的COM、DCOM呢?)

如何建立一個NAMESPACE

定義一個NAMESPACE首先需要包含關(guān)鍵詞:namespace

格式如下:

namespace Your_nsname
{
//namespase主體內(nèi)容;
}

呵呵,給我的感覺就好象和Class或Struct一樣。不過它們除了形式有類似外,確實在很多方面都不相同。

在一個NAMESPACE的主體內(nèi),可以引用其他的NAMESPACE,例如:

namespace Your_nsname{
//下面引用System和System.Xml著兩個NAMESPACE;
using System;
using System.Xml;
//namespase主體內(nèi)容;
}

在上面有一個需要注意的就是,如果要引用NAMESPACE的話,那么應該在申明其它類型前引用,如下是錯誤的:

namespace Your_nsname{
//其它一些內(nèi)容;
//由于引用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中再創(chuàng)建一個NAMESPACE N2,而N2中有兩個類(class)A、B。那么***種呢?其實上面兩個方式定義的其實是一模一樣的。NAMESPACE是可以嵌套定義的,我們可以使用第二種方式,層次感覺比較清楚,也可以使用***種方式。所不同的是,***中方式中,在N1和N2之間必須用分隔符“.”來表明他們兩者之間的層次關(guān)系!

#p#

在使用的時候用如下的方式:

N1.N2.A;

N1.N2.B;

在一個NAMESPACE中,我們也可以用一個別名指代現(xiàn)有的NAMESPACE或是一些其他類型數(shù)據(jù)。

別名的使用格式如下:

using 別名 = 一個已經(jīng)存在的類型;

例如: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中***的,而上面由于已經(jīng)有了class a{},我們在用using A =N1.NE.A;就肯定要出錯了!

不過如果我們改成:using B =N1.N2.A;那么結(jié)果如何呢?朋友門自己想想吧!我就不多說了!

我們再來看看下面這個例子:

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有一些概念了!如果能這樣的話,我的目的也達到了!

【編輯推薦】

  1. 跟MVP學C#視頻教程
  2. 淺析C#編程中的內(nèi)存管理
  3. 如何使用C#與XML創(chuàng)建動態(tài)分層菜單
責任編輯:楊鵬飛 來源: 51CTO整理
相關(guān)推薦

2011-03-30 08:27:48

C#

2024-04-03 00:10:24

C#System數(shù)據(jù)

2009-10-20 15:03:29

ExpandoObje

2024-03-19 14:18:48

C#后端編程

2009-08-31 16:47:39

C#接口的定義

2009-09-11 13:03:48

Scope屬性

2009-04-10 09:55:44

C#反射.NET

2022-08-30 07:39:57

C++namespace隔離

2009-08-14 17:09:48

C#引用類型

2009-09-01 16:07:04

C#命名規(guī)約

2009-07-30 18:20:21

C#繼承

2009-08-24 11:23:41

C# TimeLabe

2009-09-07 16:13:56

C# MessageB

2009-09-16 13:05:32

C#組件開發(fā)

2009-09-17 16:34:24

C#組件類

2020-10-16 08:30:00

foreach編程語言C#

2009-08-26 15:25:06

.NET Framew

2009-08-25 17:43:17

C#串口監(jiān)聽

2009-09-02 19:12:37

C#遞歸

2009-09-02 11:02:57

C#動態(tài)數(shù)組
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 精品毛片视频 | 色婷婷久久久亚洲一区二区三区 | 成人二区| 91免费在线看 | 午夜精品一区二区三区在线播放 | 91精品国产综合久久小仙女图片 | 91精品一区| 激情婷婷成人 | 91免费看片 | 国产精品久久视频 | 国产欧美精品 | 日本精品视频在线 | 日本精品一区二区三区在线观看 | 久久99精品国产自在现线小黄鸭 | 亚洲综合色网站 | 精品一区在线 | 99国产精品一区二区三区 | 91成人免费电影 | 欧美一区二区三区视频 | 色先锋影音 | 午夜精品久久久久久久久久久久 | 欧美精品免费观看二区 | 国产精品一级 | 亚洲精品av在线 | 亚洲国产成人精品女人久久久 | 久久精品日产第一区二区三区 | 国产精品xxxx| 中文字幕在线观看视频一区 | 欧美日韩亚洲二区 | 日韩视频免费看 | 精品国产精品三级精品av网址 | 色免费看| 日韩三级在线观看 | 自拍偷拍在线视频 | 成人在线免费观看 | 日韩a在线| 91精品国产一区二区三区 | 91精品国产综合久久久久久漫画 | 福利久久| 中文字幕1区| 91 视频网站 |