|
C#程序是利用命名空间组织起来的。命名空间既做程序的内部组织系统,又用做外部组织系统。就像一个国家为了便于管理,分成多个省份一样。
声明命名空间
命名空间是.NET 避免名称冲突的一种方式。例如,定义类Phone来表示手机,同时其他人也可以定义一个Phone类,只要二者不在同一个命名空间中,就不引起命名冲突。在一个命名空间中可以有多个类、结构、接口等。在同一个命名空间中,类名、结构、接口等不可重名。
- 语法格式如下:
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("结构体演示");Console.WriteLine("学生 " + Stu1.stuName.ToString() + ":");Console.WriteLine("学号:{0},年龄:{1},年级:{2},班级:{3}",Stu1.stuNum,Stu1.stuAge,Stu1.stuGrade,Stu1.stuClass);Stu1.ChengeStudentInf("14031403", "小明", 19, 1, 13);Console.WriteLine("调用结构体方法演示");Console.WriteLine("学生 " + Stu1.stuName.ToString() + ":");Console.WriteLine("学号:{0},年龄:{1},年级:{2},班级:{3}", Stu1.stuNum, Stu1.stuAge, Stu1.stuGrade, Stu1.stuClass);Student stu2 = new Student("14081408", "小王", 18, 3, 12);Console.WriteLine("调用结构体构造函数演示");Console.WriteLine("学生 " + stu2.stuName.ToString() + ":");Console.WriteLine("学号:{0},年龄:{1},年级:{2},班级:{3}", stu2.stuNum, stu2.stuAge, stu2.stuGrade, stu2.stuClass);Console.ReadKey();}}public struct Student //定义结构体Student{public String stuNum; //定义结构成员表示学生学号public String stuName; //定义结构成员表示学生名字public int stuAge; //定义结构成员表示学生年龄public int stuClass; //定义结构成员表示学生班级public int stuGrade; //定义结构成员表示学生年级public Student(String stuNum, String stuName, int stuAge, int stuClass, int stuGrade){ //结构体的构造函数,用参数给成员赋值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){ //结构体的方法函数,用参数改变成员的值this.stuNum = stuNum;this.stuName = stuName;this.stuAge = stuAge;this.stuClass = stuClass;this.stuGrade = stuGrade;}}}
namespace test就是定义了test命名空间。
命名空间不过是数据类型的一种组合方式,但命名空间中所有数据类型的名称都会自动加上该命名空间的名字作为其前缀。命名空间还可以相互嵌套。如果没有显示提供命名空间,则默认用该项目名称作为命名空间。using关键字
把一个类型放在命名空间中,可以有效地给这个类型制定一个较长的名称,该名称包括类型的命名空间,后面是句点“.”和类型的名称。
- 语法格式如下:
using 命名空间名称;
引入命名空间后,就可以在代码中直接引入命名空间中类型的名字了。
如下: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("结构体演示");Console.WriteLine("学生 " + Stu1.stuName.ToString() + ":");Console.WriteLine("学号:{0},年龄:{1},年级:{2},班级:{3}",Stu1.stuNum,Stu1.stuAge,Stu1.stuGrade,Stu1.stuClass);Stu1.ChengeStudentInf("14031403", "小明", 19, 1, 13);Console.WriteLine("调用结构体方法演示");Console.WriteLine("学生 " + Stu1.stuName.ToString() + ":");Console.WriteLine("学号:{0},年龄:{1},年级:{2},班级:{3}", Stu1.stuNum, Stu1.stuAge, Stu1.stuGrade, Stu1.stuClass);Student stu2 = new Student("14081408", "小王", 18, 3, 12);Console.WriteLine("调用结构体构造函数演示");Console.WriteLine("学生 " + stu2.stuName.ToString() + ":");Console.WriteLine("学号:{0},年龄:{1},年级:{2},班级:{3}", stu2.stuNum, stu2.stuAge, stu2.stuGrade, stu2.stuClass);Console.ReadKey();}}public struct Student //定义结构体Student{public String stuNum; //定义结构成员表示学生学号public String stuName; //定义结构成员表示学生名字public int stuAge; //定义结构成员表示学生年龄public int stuClass; //定义结构成员表示学生班级public int stuGrade; //定义结构成员表示学生年级public Student(String stuNum, String stuName, int stuAge, int stuClass, int stuGrade){ //结构体的构造函数,用参数给成员赋值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){ //结构体的方法函数,用参数改变成员的值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指令引用的两个命名空间包含同名的类,就必须使用完整的名字,以确保编译器知道访问哪个类型。就像一班和二班都有一个叫黎明的学生,开校大会点名时就要说清楚是一班的还是二班的黎明。建议在大多数情况下,都至少要提供两个嵌套的命名空间名称,第一是公司名,第二是技术名称或软件包名称,而类是其中的一个成员。
- 博主简介:
- 工业自动化上位机软件工程师、机器视觉算法工程师、运动控制算法工程师。目前从业于智能制造自动化行业。 博主邮箱:2296776525@qq.com
- 帮忙点个赞吧。哈哈。