深入.net平台和C#编程
2014-11-02 23:14
183 查看
第一讲 :深入.NET框架第二讲:深入C#数据类型第三讲 :使用结合组织相关数据第四讲 :深入类的方法第六讲 :初识继承和多态第七讲 :深入理解多态第八讲 :可扩展标记语言(XML)第九讲:文件操作
线程睡眠: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+基本图形操作。
结构:1.特点:结构中可以有字段,也可以有方法;定义时,结构中的字段不能被赋值;使用结构时可以不用new,直接定义结构的对象即可;声明结构的对象后,必须给结构的成员赋初始值
2.定义:访问修饰符 struct 结构名{ //结构体 }关于ref修饰的使用:
使用值方式(不用ref修饰)传递值类型参数时,参数在方法中的修改不会保留
使用值方式(不用ref修饰)传递引用类型参数时,参数在方法中的修改会保留
使用引用方式(用ref修饰)传递值类型或引用类型参数时,参数在方法中的修改都会被保留
值类型转换为引用类型称为装箱,反之称为拆箱.
例: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.在同一个类中 注:方法名及参数列表相同的方法,仅是返回类型不同,不能称为方法重载
Public、private、protected 的区别
继承的特性:1.传递性(如果class A:B,class B:C,则A也可以访问C的成员)、
2.单根性(只能有一个老爸)使用virtual关键字修饰的方法称为虚方法,一般写在父类,可用override关键字修饰在子类中重写。
使用abstract关键字修饰的类是抽象类,使用abstract关键字修饰的方法是抽象方法,有抽象方法的类成为抽象类,抽象类中的抽象方法必须要在非抽象子类中使用override关键字重写。
抽象类不能被实例化,不能是密封的或静态的。
Is 操作符用于检查对象和指定的类型是否兼容;as 操作符主要用于两个对象之间的类型转换。
面向对象的三个特性:
1.封装:保证对象自身数据的完整性和安全性。 2.继承:建立类之间的关系,实现代码复用,方便系统的扩展。 3.多态:相同的方法调用可实现不同的实现方式
例:读取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的对象属性和方法
TreeView控件用于显示具有层次结构的信息,主要属性有Nodes和SelectedNode。Nodes属性包含了TreeView的节点对象,SelectedNode表示当前选中的节点。
TreeNode表示TreeView的节点对象。Text属性用于设置节点的文字描述,Tag属性可以设置与节点相关的信息。
通过TreeNode的Add()方法可以给TreeView添加节点,Remove()方法可以移除指定的节点,Clear() 方法可以移除指定节点下的所有节点。
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类的常用方法(文件操作类,可以不实例化对象):
Directory类的常用方法(操作目录类,可以不实例化对象):
静态类和非静态类的区别
FileInfo类的属性和方法(文件操作类,必须实例化对象):
DirectoryInfo类,与Directory类相似,但必须实例化对象,其中GetDirectories()方法:该方法返回当前目录的子目录对象数组;GetFiles():该方法返回当前目录下的文件列表(FileInfo 对象数组)。
MyFile类(存储文件信息类):
第一讲:深入.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[] |
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 | 可以 | 不可以 | 不可以 |
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的对象属性和方法
对象 | 属性和方法 | 说明 |
XmlDocument | DocumentElement属性 | 获取根节点 |
ChildNodes属性 | 获取所有子节点 | |
Load()方法 | 读取整个XML的结构 | |
XmlNode | InnerText属性 | 当前节点的值 |
Name属性 | 当前节点的名称 | |
ChildNodes属性 | 当前节点的所有子节点 |
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类的常用方法(文件操作类,可以不实例化对象):
返回值类型 | 方法名称 | 说明 |
bool | Exists(string path) | 用于检查指定文件是否存在 |
void | Copy(string sourceFilePath,String destinationFilePath) | 将指定路径的源文件中的内容复制到目标文件中,如果目标文件不存在,则在指定路径中新建一个文件 |
void | Move(string sourceFileName,string destFileName) | 将指定文件移到一个新的路径 |
void | Delete(string path) | 删除指定的文件,如果指定的文件不存在,则不引发异常 |
返回值类型 | 方法名称 | 说明 |
bool | Exists(string path) | 用于检查指定文件夹在磁盘上是否存在 |
void | Move(string sourceDirName,String destDirName) | 用于将文件或目录及其内容移到新位置 |
void | Delete(string path,bool recursive) | 删除指定目录,如果recursive值为true,则删除子目录中的所有目录内容 |
静态类 | 非静态类 |
用static修饰 | 不用static修饰 |
只包含静态成员 | 可以包含静态成员 |
不可以包含实例成员 | 可以包含实例成员 |
使用类名调用静态成员 | 使用实例对象调用非静态成员 |
不能被实例化 | 可以被实例化 |
不能包含实例构造函数 | 包含实例构造函数 |
属性 | 说明 | |
Exists | 用于检查指定文件是否存在,返回一个布尔值 | |
Extension | 获取表示文件扩展名部分的字符串 | |
Name | 获取文件名 | |
FullName | 获取目录或文件的完整目录 | |
返回值类型 | 方法 | 说明 |
FileInfo | CopyTo(string) | 将现在文件复制到新文件,不允许覆盖现在文件 |
void | Delete() | 永久删除文件 |
void | maveTo(string) | 将指定文件移到新位置(string) |
MyFile类(存储文件信息类):
属性 | 类型 | 说明 |
FileLength | float | 文件长度,以KB为单位 |
FileName | string | 文件名 |
FilePath | string | 文件路径 |
FileType | string | 文件类型 |
相关文章推荐
- 深入.NET平台和C#编程总结大全
- 《深入.NET平台和C# 编程》内测纠错记录
- 《深入.NET平台和C# 编程》内部测试 笔试题
- 深入.NET平台和C#编程_深入.NET框架
- 深入.NET平台和C#编程---总结
- .NET平台和C#编程基础知识复习
- c#编程指南——平台调用P-INVOKE完全掌握,C#和C++互相调用
- [转].NET平台下的Excel编程|C#操作Excel|Application和ApplicationClass的联系和区别
- 基于WINCE 平台C#编程要点之一
- 深入.NET平台和C#编程 第二章 上机3 经理评分
- c#编程指南(十) 平台调用P-INVOKE完全掌握, 字符串和指针
- 深入.NET平台和C#编程 第二章 学习笔记
- 深入.NET平台和C#编程--第二章经理评分
- .NET平台下的Excel编程|C#操作Excel|Application和ApplicationClass的联系和区别
- 深入.NET平台和C#编程 第一章 概念+上机
- 深入.NET平台和C#编程第二张上机练习2
- 深入.NET平台和C#编程 第四章 学习笔记
- 深入.NET平台和C#编程 第三章 学习笔记
- ACCP5.0 深入.NET平台和C#编程 小总结
- 那些年【深入.NET平台和C#编程】