命名空间.ppt

上传人:sccc 文档编号:5344196 上传时间:2023-06-28 格式:PPT 页数:31 大小:2.07MB
返回 下载 相关 举报
命名空间.ppt_第1页
第1页 / 共31页
命名空间.ppt_第2页
第2页 / 共31页
命名空间.ppt_第3页
第3页 / 共31页
命名空间.ppt_第4页
第4页 / 共31页
命名空间.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《命名空间.ppt》由会员分享,可在线阅读,更多相关《命名空间.ppt(31页珍藏版)》请在三一办公上搜索。

1、命名空间,第六章,2,回顾,第五章 C#中的高级 OOP 概念当需要从基类的对象中调用派生的类方法时,虚拟函数十分有用。重写和多态之间的区别是:在多态中,调用哪种方法的决定是在运行时做出的。抽象基类是至少包含一个抽象成员(没有实现的方法)的类。不能创建抽象基类的新实例。没有实现的方法称为“操作”。接口是纯抽象基类。它只能包含抽象方法,而不包含方法实现。一个类可以实现多个接口。,3,目标,解释命名空间创建自定义的命名空间讨论命名空间命名的类型使用命名空间指令为命名空间创建别名了解.NET 基类库,4,命名空间,用于避免命名冲突专用于组织代码当代码要在其他某个应用程序中重用时,可以降低复杂性,5,

2、声明命名空间2-1,与类的声明过程相似语法 namespace NameSpaceName/此处列出该命名空间的全部类!,6,声明命名空间2-2,class SamsungTelevision.class SamsungWalkMan.class SonyTelevision.class SonyWalkMan.,namespace Samsung class Television.class WalkMan.namespace Sony class Television.class Walkman.,使用命名空间解决命名冲突更简洁、更有条理、结构更清晰,7,嵌套命名空间,在一个命名空间内声明

3、另一个命名空间,.namespace Sony namespace Television class T14inches.class T21inches.,.namespace Sony.Televisionclass T14inches.class T21inches.,第二种命名空间的方法在C#中可用,在C+中是不可用的,8,访问修饰符和命名空间,命名空间是隐式公共的命名空间不能为受保护的、私有的或内部的,.public namespace Sony/错误.private namespace Samsung/错误.,在声明命名空间时前面不应加任何访问修饰符,9,限定命名,要在类所属的命名空

4、间内使用该类,只需要指定该类的名称要在类所属的命名空间之外使用该类,必须使用该类的完全限定名来引用它 Namespace.class name,10,非限定命名,namespace Sony class Television.class WalkMan.Television MyEntertainment=new Television();.,在类所属的命名空间内使用该类时,只需指定类名,这称为“非限定名称”,11,限定命名-示例,using Sony;using Samsung;using System;namespace Sony namespace Television class T1

5、4inches public T14inches()Console.WriteLine(一台 14 英寸的电视机);class T21inches public T21inches()Console.WriteLine(一台 21 英寸的电视机);,namespace Samsung class Television Sony.Television.T14inches myEntertainment=new Sony.Television.T14inches();class Test static void Main()Samsung.Television myEntertainment=ne

6、w Samsung.Television();,限定命名是在类名称前加上点操作符和名称空间,12,using 命名空间指令,使用限定命名会使代码变长且容易混淆 使用 using 命名空间指令可以使长且容易混淆的名称变得简短而且有意义,.Sony.Television.T14inches Television=new Sony.Television.T14inches();.,using Sony.Television;T14inches Television=new T14inches();T21inches Television2=new T21inches();,13,有效和无效的命名空间

7、声明,14,二义性名称2-1,using Sony;using Samsung;class Test static void Main()Television MyEntertainment=new Television();,这会导致错误,因为Sony,Samsung命名空间都有Television类,程序中不知调用哪个命名空间的类,类名称存在二义性。,15,二义性名称2-2,using Sony;using Samsung;class Test static void Main()Samsung.Television MyEntertainment=new Samsung.Televisi

8、on();,在类名存在二义性的情况下,只能像代码段中那样使用限定的命名空间,16,using 别名指令,using别名指令提供了一种功能,可以从命名空间中只提取一个类,并将其放入作用域中,using T21inches=Sony.Televisions.T21inches;class Test static void Main()T21inches M=new T21inches();,using 别名名称=到命名空间或类的完全限定路径,17,基类库,是预先编写的代码的集合,这些代码可以很容易地合并到应用程序中,并在应用程序中加以使用基类库可以被所有.NET 支持的语言共享根据其功能,BCL

9、中的类被归类到相应的命名空间中,18,最常用的命名空间和类,19,命名空间 System.Array3-1,提供用于操纵数组的类和方法,using System;class Test static void Main()int arrayToReverse=1,2,3,4,5,6,7;Console.WriteLine(反转前数组的内容:n);displayArray(arrayToReverse);Array.Reverse(arrayToReverse);Console.WriteLine(nn反转后数组的内容:n);displayArray(arrayToReverse);,public

10、 static void displayArray(Array myArray)foreach(int arrValue in myArray)Console.WriteLine(arrValue);,20,命名空间 System.Array3-2,上示例的输出结果,21,命名空间 System.Array3-3,命名空间 System.Array 其他方法,22,命名空间 System.Threading3-1,在程序中实现多线程同时运行同一程序或程序不同部分的一个或多个实例,23,命名空间 System.Threading3-2,示例,using System;using System.T

11、hreading;class Test static void Main()Thread newThread=new Thread(new ThreadStart(ThreadToRun);newThread.Start();ThreadToRun();static void ThreadToRun()for(int count=1;count10;count+)Console.WriteLine(线程数为 0,count);,24,命名空间 System.Threading3-3,线程同步,using System;using System.Threading;class Test stat

12、ic void Main()Test objTest=new Test();Thread newThread=new Thread(new ThreadStart(objTest.threadToRun);newThread.Start();objTest.threadToRun();void threadToRun()lock(this)for(int count=1;count10;count+)Console.WriteLine(线程数为 0,count);,25,命名空间 System.IO3-1,提供了大量用于文件/流的输入/输出的类 示例,26,命名空间 System.IO3-2,

13、示例,using System;using System.IO;class Test static void Main(string args)Console.WriteLine(创建目录 C:Sample.);Directory.CreateDirectory(c:Sample);DateTime creationDate=Directory.GetCreationTime(c:Sample);Console.WriteLine(目录创建于:+creationDate.ToString();,27,命名空间 System.IO3-3,其他重要的类,28,System.String 类2-1,提供了很多用于操纵字符串的方法示例,29,System.String 类2-2,System.String其它重要方法及功能,30,System.Collections.ArrayList类,提供了用于操纵与普通数组略有不同的一维数组的方法。示例,31,总结,除了可以避免命名冲突外,命名空间也被设计成帮助组织代码的元素。命名空间可以进行嵌套。命名空间是隐式公共的。完全限定名是在类的名称之前加上包含该类的命名空间和一个点操作符。使用“using 命名空间指令”,可以在不使用限定名的情况下,在类的命名空间之外使用这些类。using 命名空间指令必须在所有成员声明之前被声明。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号