您的位置:首页 > 编程语言 > C#

深入.net平台和C#编程

2014-11-02 23:14 183 查看
第一讲 :深入.NET框架第二讲:深入C#数据类型第三讲 :使用结合组织相关数据第四讲 :深入类的方法第六讲 :初识继承和多态第七讲 :深入理解多态第八讲 :可扩展标记语言(XML)第九讲:文件操作

第一讲:深入.NET框架

知识拓展:

线程睡眠:1.导入命名空间 System.Treading; 2.Thread.Sleed(毫秒);.NET框架具有两个主要组件:公共语言运行时(CLR)与框架类库(.NET Framework类库,即FCL)。CLR是.NET框架的基础。CLS公共语言规范。

.NET框架核心类库及其功能:

1.System:此命名空间包含其他所有的命名控件。2.System.Collections.Generic:支持泛型操作。System.IO:支持对文件的操作,如复制、粘贴、删除以及对文件的读写等。

System.Net:支持对网络协议的编程。

System.Data:提供对便是ADO.NET结构的类的访问。

System.Windows.Forms:用于开发Windows应用程序。

System.Drawing:支持GDI+基本图形操作。

第二讲:深入C#数据类型

数据类型分类:

类别描述
值类型基本数据类型整型:int
长整型:long
浮点型:float双精度型:double
字符型:char
布尔型:bool
枚举类型枚举:enum
结构类型结构:struct
引用类型基类:System.Object
字符串:string
自定义类:class
接口接口:interface
数组数组:int[],string[]
结构:1.特点:结构中可以有字段,也可以有方法;定义时,结构中的字段不能被赋值;使用结构时可以不用new,直接定义结构的对象即可;声明结构的对象后,必须给结构的成员赋初始值

2.定义:访问修饰符 struct 结构名{ //结构体 }关于ref修饰的使用:

使用值方式(不用ref修饰)传递值类型参数时,参数在方法中的修改不会保留

使用值方式(不用ref修饰)传递引用类型参数时,参数在方法中的修改会保留

使用引用方式(用ref修饰)传递值类型或引用类型参数时,参数在方法中的修改都会被保留

值类型转换为引用类型称为装箱,反之称为拆箱.

第三讲:使用集合组织相关数据

ArrayList:类似于数组,可动态维护;容量可自动扩充,属于System.Collections命名空间

例:ArrayList aa=new ArrayList();aa.Add(Object) //添加aa.Remove(Object Value) //通过对象删除aa.Remove(int index) //通过索引删除注:给ArrayList 添加的元素都会被转换为Object类型,所有在访问这些元素的时候必须把它们转换回原来的数据类型。Hashtable:”字典”,通过键(Key)和值(Value)来组织,也属于System.Collections命名空间。

例:Hashtable aa=new Hashtable(); aa.Add(Key,Object value) //添加,Key类型不定,一般为唯一标识列 aa.Remove(Key) //删除,也可使用aa.Clear() 清除所有元素注:Hashtable 不能用索引访问,因此遍历只能用foreach()方法,须转换类型(泛型集合)List<>

例:List<string> aa=new List<string>(); aa.Add( string value) //只能添加定义的数据类型 aa.RemoveAt(索引) //通过索引删除 aa.Remove(值或对象) //通过值或对象删除(泛型集合)Dictionary<K,V>

例:Dictionary<Key,Value> aa=new Dictionary<Key,Value>(); aa.Add(Key,Value) //成对添加 aa.Remove(Key) //通过Key值删除

第四讲:深入类的方法

构造函数

特点:1.方法名与类名相同 2.没有返回值类型 3.主要完成对象的初始化工作注:写一个带参的构造函数之后,如果实例化的这个类不传参数,则需要多写一个无参的构造函数方法重载:

特点:1.方法名相同 2.方法参数类型不同或者参数个数不同 3.在同一个类中 注:方法名及参数列表相同的方法,仅是返回类型不同,不能称为方法重载

第六章:初识继承和多态

Base 关键字:表示父类,可以用于访问父类的成员;protected修饰符:用于修饰父类成员则只允许子类访问该成员

Public、private、protected 的区别

修饰符类内部子类其他类
Public可以可以可以
private可以可以不可以
protected可以不可以不可以
继承的特性:1.传递性(如果class A:B,class B:C,则A也可以访问C的成员)、

2.单根性(只能有一个老爸)使用virtual关键字修饰的方法称为虚方法,一般写在父类,可用override关键字修饰在子类中重写。

第七讲:深入理解多态

里氏原则:子类可以替换父类,父类不能替换子类。

使用abstract关键字修饰的类是抽象类,使用abstract关键字修饰的方法是抽象方法,有抽象方法的类成为抽象类,抽象类中的抽象方法必须要在非抽象子类中使用override关键字重写。

抽象类不能被实例化,不能是密封的或静态的。

Is 操作符用于检查对象和指定的类型是否兼容;as 操作符主要用于两个对象之间的类型转换。

面向对象的三个特性:

1.封装:保证对象自身数据的完整性和安全性。 2.继承:建立类之间的关系,实现代码复用,方便系统的扩展。 3.多态:相同的方法调用可实现不同的实现方式

第八讲:可扩展标记语言(XML)

读取XML文件的步骤:1.创建操作对象 2.加载XML文件 3.获取根节点对象 4.逐层次遍历根节点下的子节点,获取节点的值存到所对应的对象中。

例:读取XML文件的一般操作: XmlDocument myXml=new XmlDocument(); //创建操作对象 myXml.Load(“文件路径”); //加载XML文件 XmlNode engineer=myXml.DocumentElement; //读取XML的根节点//循环遍历根节点下的子节点,ChildNodes[0]则跳一级 Foreach(XmlNode node in engineer.ChildNodes) { String name=node[“节点文本”].InnerText//如果获取节点文本则用node.Name//如果获取文本节点中的name值则用node.Attributes[“节点文本”].InnerText }操作XML的对象属性和方法

对象属性和方法说明
XmlDocumentDocumentElement属性获取根节点
ChildNodes属性获取所有子节点
Load()方法读取整个XML的结构
XmlNodeInnerText属性当前节点的值
Name属性当前节点的名称
ChildNodes属性当前节点的所有子节点
TreeView控件用于显示具有层次结构的信息,主要属性有Nodes和SelectedNode。Nodes属性包含了TreeView的节点对象,SelectedNode表示当前选中的节点。

TreeNode表示TreeView的节点对象。Text属性用于设置节点的文字描述,Tag属性可以设置与节点相关的信息。

通过TreeNode的Add()方法可以给TreeView添加节点,Remove()方法可以移除指定的节点,Clear() 方法可以移除指定节点下的所有节点。

第九讲:文件操作

用C#程序读写一个文件的5个步骤:

1.创建文件流;2.创建阅读器或者写入器;3.执行读写操作;4.关闭阅读器或者写入器;5.关闭文件流。(注:流是一个用于数据传输的对象)例://创建文件流FileStream myfs=new FileStream(保存的路径,FileMode.Create);//创建写入器StreamWriter mySw=new StreamWriter(myfs);//将内容写入文件 mySw.Write(“内容”);//关闭写入器mySw.Close();//关闭文件流myfs.Close();StreamWriter 写入器

StreamWriter.Write(); 用于写入流,这个流就是我们创建好的流。StreamWriter.WriteLine(); 用于写入一行数据,写入某些数据后跟换行符。StreamWriter.Close(); 用于关闭写入器。StreamReader 读取器

StreamReader.ReadLine(); 读取文件流中的一行数据,并返回字符串StreamReader.ReadToEnd(); 从当前位置读到末尾,返回字符串StreamReader.Close(); 用于关闭读取器File类的常用方法(文件操作类,可以不实例化对象):

返回值类型方法名称说明
boolExists(string path)用于检查指定文件是否存在
voidCopy(string sourceFilePath,String destinationFilePath)将指定路径的源文件中的内容复制到目标文件中,如果目标文件不存在,则在指定路径中新建一个文件
voidMove(string sourceFileName,string destFileName)将指定文件移到一个新的路径
voidDelete(string path)删除指定的文件,如果指定的文件不存在,则不引发异常
Directory类的常用方法(操作目录类,可以不实例化对象):

返回值类型方法名称说明
boolExists(string path)用于检查指定文件夹在磁盘上是否存在
voidMove(string sourceDirName,String destDirName)用于将文件或目录及其内容移到新位置
voidDelete(string path,bool recursive)删除指定目录,如果recursive值为true,则删除子目录中的所有目录内容
静态类和非静态类的区别

静态类非静态类
用static修饰不用static修饰
只包含静态成员可以包含静态成员
不可以包含实例成员可以包含实例成员
使用类名调用静态成员使用实例对象调用非静态成员
不能被实例化可以被实例化
不能包含实例构造函数包含实例构造函数
FileInfo类的属性和方法(文件操作类,必须实例化对象):

属性说明
Exists用于检查指定文件是否存在,返回一个布尔值
Extension获取表示文件扩展名部分的字符串
Name获取文件名
FullName获取目录或文件的完整目录
返回值类型方法说明
FileInfoCopyTo(string)将现在文件复制到新文件,不允许覆盖现在文件
voidDelete()永久删除文件
voidmaveTo(string)将指定文件移到新位置(string)
DirectoryInfo类,与Directory类相似,但必须实例化对象,其中GetDirectories()方法:该方法返回当前目录的子目录对象数组;GetFiles():该方法返回当前目录下的文件列表(FileInfo 对象数组)。

MyFile类(存储文件信息类):

属性类型说明
FileLengthfloat文件长度,以KB为单位
FileNamestring文件名
FilePathstring文件路径
FileTypestring文件类型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C#编程 .net平台