namespace-C#命名空间
|
C#程序是利用命名空間組織起來(lái)的。命名空間既做程序的內(nèi)部組織系統(tǒng),又用做外部組織系統(tǒng)。就像一個(gè)國(guó)家為了便于管理,分成多個(gè)省份一樣。
聲明命名空間
命名空間是.NET 避免名稱沖突的一種方式。例如,定義類(lèi)Phone來(lái)表示手機(jī),同時(shí)其他人也可以定義一個(gè)Phone類(lèi),只要二者不在同一個(gè)命名空間中,就不引起命名沖突。在一個(gè)命名空間中可以有多個(gè)類(lèi)、結(jié)構(gòu)、接口等。在同一個(gè)命名空間中,類(lèi)名、結(jié)構(gòu)、接口等不可重名。
- 語(yǔ)法格式如下:
- namespace 命名空間名稱{//命名空間主體}
如下程序:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace test {class Program{static void Main(string[] args){Student Stu1;Stu1.stuNum = "14031403";Stu1.stuName = "小明";Stu1.stuAge = 19;Stu1.stuClass = 1;Stu1.stuGrade = 12;Console.WriteLine("結(jié)構(gòu)體演示");Console.WriteLine("學(xué)生 " + Stu1.stuName.ToString() + ":");Console.WriteLine("學(xué)號(hào):{0},年齡:{1},年級(jí):{2},班級(jí):{3}",Stu1.stuNum,Stu1.stuAge,Stu1.stuGrade,Stu1.stuClass);Stu1.ChengeStudentInf("14031403", "小明", 19, 1, 13);Console.WriteLine("調(diào)用結(jié)構(gòu)體方法演示");Console.WriteLine("學(xué)生 " + Stu1.stuName.ToString() + ":");Console.WriteLine("學(xué)號(hào):{0},年齡:{1},年級(jí):{2},班級(jí):{3}", Stu1.stuNum, Stu1.stuAge, Stu1.stuGrade, Stu1.stuClass);Student stu2 = new Student("14081408", "小王", 18, 3, 12);Console.WriteLine("調(diào)用結(jié)構(gòu)體構(gòu)造函數(shù)演示");Console.WriteLine("學(xué)生 " + stu2.stuName.ToString() + ":");Console.WriteLine("學(xué)號(hào):{0},年齡:{1},年級(jí):{2},班級(jí):{3}", stu2.stuNum, stu2.stuAge, stu2.stuGrade, stu2.stuClass);Console.ReadKey();}}public struct Student //定義結(jié)構(gòu)體Student{public String stuNum; //定義結(jié)構(gòu)成員表示學(xué)生學(xué)號(hào)public String stuName; //定義結(jié)構(gòu)成員表示學(xué)生名字public int stuAge; //定義結(jié)構(gòu)成員表示學(xué)生年齡public int stuClass; //定義結(jié)構(gòu)成員表示學(xué)生班級(jí)public int stuGrade; //定義結(jié)構(gòu)成員表示學(xué)生年級(jí)public Student(String stuNum, String stuName, int stuAge, int stuClass, int stuGrade){ //結(jié)構(gòu)體的構(gòu)造函數(shù),用參數(shù)給成員賦值this.stuNum = stuNum;this.stuName = stuName;this.stuAge = stuAge;this.stuClass = stuClass;this.stuGrade = stuGrade;}public void ChengeStudentInf(String stuNum, String stuName, int stuAge, int stuClass, int stuGrade){ //結(jié)構(gòu)體的方法函數(shù),用參數(shù)改變成員的值this.stuNum = stuNum;this.stuName = stuName;this.stuAge = stuAge;this.stuClass = stuClass;this.stuGrade = stuGrade;}}}namespace test就是定義了test命名空間。
命名空間不過(guò)是數(shù)據(jù)類(lèi)型的一種組合方式,但命名空間中所有數(shù)據(jù)類(lèi)型的名稱都會(huì)自動(dòng)加上該命名空間的名字作為其前綴。命名空間還可以相互嵌套。如果沒(méi)有顯示提供命名空間,則默認(rèn)用該項(xiàng)目名稱作為命名空間。using關(guān)鍵字
把一個(gè)類(lèi)型放在命名空間中,可以有效地給這個(gè)類(lèi)型制定一個(gè)較長(zhǎng)的名稱,該名稱包括類(lèi)型的命名空間,后面是句點(diǎn)“.”和類(lèi)型的名稱。
- 語(yǔ)法格式如下:
- using 命名空間名稱;
引入命名空間后,就可以在代碼中直接引入命名空間中類(lèi)型的名字了。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace test {class Program{static void Main(string[] args){Student Stu1;Stu1.stuNum = "14031403";Stu1.stuName = "小明";Stu1.stuAge = 19;Stu1.stuClass = 1;Stu1.stuGrade = 12;Console.WriteLine("結(jié)構(gòu)體演示");Console.WriteLine("學(xué)生 " + Stu1.stuName.ToString() + ":");Console.WriteLine("學(xué)號(hào):{0},年齡:{1},年級(jí):{2},班級(jí):{3}",Stu1.stuNum,Stu1.stuAge,Stu1.stuGrade,Stu1.stuClass);Stu1.ChengeStudentInf("14031403", "小明", 19, 1, 13);Console.WriteLine("調(diào)用結(jié)構(gòu)體方法演示");Console.WriteLine("學(xué)生 " + Stu1.stuName.ToString() + ":");Console.WriteLine("學(xué)號(hào):{0},年齡:{1},年級(jí):{2},班級(jí):{3}", Stu1.stuNum, Stu1.stuAge, Stu1.stuGrade, Stu1.stuClass);Student stu2 = new Student("14081408", "小王", 18, 3, 12);Console.WriteLine("調(diào)用結(jié)構(gòu)體構(gòu)造函數(shù)演示");Console.WriteLine("學(xué)生 " + stu2.stuName.ToString() + ":");Console.WriteLine("學(xué)號(hào):{0},年齡:{1},年級(jí):{2},班級(jí):{3}", stu2.stuNum, stu2.stuAge, stu2.stuGrade, stu2.stuClass);Console.ReadKey();}}public struct Student //定義結(jié)構(gòu)體Student{public String stuNum; //定義結(jié)構(gòu)成員表示學(xué)生學(xué)號(hào)public String stuName; //定義結(jié)構(gòu)成員表示學(xué)生名字public int stuAge; //定義結(jié)構(gòu)成員表示學(xué)生年齡public int stuClass; //定義結(jié)構(gòu)成員表示學(xué)生班級(jí)public int stuGrade; //定義結(jié)構(gòu)成員表示學(xué)生年級(jí)public Student(String stuNum, String stuName, int stuAge, int stuClass, int stuGrade){ //結(jié)構(gòu)體的構(gòu)造函數(shù),用參數(shù)給成員賦值this.stuNum = stuNum;this.stuName = stuName;this.stuAge = stuAge;this.stuClass = stuClass;this.stuGrade = stuGrade;}public void ChengeStudentInf(String stuNum, String stuName, int stuAge, int stuClass, int stuGrade){ //結(jié)構(gòu)體的方法函數(shù),用參數(shù)改變成員的值this.stuNum = stuNum;this.stuName = stuName;this.stuAge = stuAge;this.stuClass = stuClass;this.stuGrade = stuGrade;}}} using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
如下:這就是在引入命名空間。
如果Using指令引用的兩個(gè)命名空間包含同名的類(lèi),就必須使用完整的名字,以確保編譯器知道訪問(wèn)哪個(gè)類(lèi)型。就像一班和二班都有一個(gè)叫黎明的學(xué)生,開(kāi)校大會(huì)點(diǎn)名時(shí)就要說(shuō)清楚是一班的還是二班的黎明。建議在大多數(shù)情況下,都至少要提供兩個(gè)嵌套的命名空間名稱,第一是公司名,第二是技術(shù)名稱或軟件包名稱,而類(lèi)是其中的一個(gè)成員。
- 博主簡(jiǎn)介:
- 工業(yè)自動(dòng)化上位機(jī)軟件工程師、機(jī)器視覺(jué)算法工程師、運(yùn)動(dòng)控制算法工程師。目前從業(yè)于智能制造自動(dòng)化行業(yè)。 博主郵箱:2296776525@qq.com
- 幫忙點(diǎn)個(gè)贊吧。哈哈。
總結(jié)
以上是生活随笔為你收集整理的namespace-C#命名空间的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux之Ubuntu安装搜狗输入法
- 下一篇: 子承父业-C#继承