.NET

空扰寡人 提交于 2020-03-03 18:56:16

1.深入.NET框架

  1.1:NET的优点:

    1.1.1:提供面向对象的编程环境

    1.1.2:对web应用的强大支持

    1.1.3:对web Service的支持

    1.1.4:实现SOA,支持云计算

    1.1.5:支持构建.NET程序的炫彩外衣

  1.2:.NET框架结构

    1.2.1:.NET框架包括公共语言运行时(CLR),框架类库(.NET Framework类库,FCL)

    1.2.2:.NET Framework是一个综合性的面向对象的可重用类型集合

    1.2.3:.NET Framework类库引进的新特性

    1.2.3.1:WPF,图形引擎

    1.2.3.2:WCF,分布式计算

    1.2.3.3:WF,工作流框架

    1.2.3.4:Windows CardSpace:取代用户名和密码成为验证用户身份的新方法

    1.2.3.5:LINQ:使用面向对象的语法为第三方数据源编写LINQ查询

  1.2.4:.NET Framework的目的

1.2.4.1:提供一个一致的面向对象的编程环境

1.2.4.2:提供软件部署和版本冲突最小化的代码执行环境

1.2.4.3:提高执行安全性的环境

1.2.4.4:图标控件

1.2.4.5:SEO

1.2.4.6:输出缓存

1.2.5:公共语言运行时(CLR)由公共语言规范(CLS)和通用类型系统(CTS)

1.2.5.1:.NET的编译技术,通过JIT编译器转换成机器代码然后执行,从而实现了代码托管,也加强了程序的运行效率

1.2.5.2:通用类型系统(CTS):用于解决不同语言中语言数据类型不同的问题

1.2.5.3:公共语言规范(CLS):一种用于不同语言的最低的语言标准

1.2.6:框架类库(.NET Framework类库,FCL)核心类库,及功能

1.2.6.1:System:包含所有其他的命名空间

1.2.6.2:System.collections.Generic:支持泛型

1.2.6.3:System.IO:支持IO流

1.2.6.4:System.NET:支持网络编程

1.2.6.5:System.Data:提供ADO.NET结构类的访问

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

1.2.6.7:System.Drawing:GDI+等图形操作

1.2.6.8:System.Data:ADO.NET技术

1.2.7:.Net框架---程序集的组成部分

1.2.7.1:程序集清单:

1.2.7.2:类型元数据

1.2.7.3:中间语言

1.2.7.4:资源

1.3:面向对象

1.3.1:类和对象

1.3.1:对象归纳成类,是归纳对象共性的过程

1.3.2:在类的基础上,将状态和行为实体化为对象的过程叫做实例化

1.3.3:封装的好处:

1.3.3.1:保证数据的安全性

1.3.3.2:提供清晰的对外接口

1.3.3.3:类内部实现可以任意更改,不影响其他类

1.3.4:类图的查看

1.3.4.1:类图中返回值与属性的格式:属性类型放在冒号后面,返回值类型在冒号后面

2.深入C#数据类型

2.1:值类型和引用类型

2.1.1:值类型--源于System.ValueType--每个值类型对象都有一个独立的内存区--内存区成为栈(Stack)

2.1.2:引用类型--源于System.object--引用类型是保存着一个地址,地址对应一个内存区

2.1.3:细分值类型和引用类型

值类型

基本数据类型

整形:Integer

长整型:long

(单精度)浮点型:float

双精度:double

字符型:char

布尔型:boolean

枚举类型

枚举类型:enum

结构类型

结构:struct

引用类型

基类:System.Object

字符串:String

自定义类:class

接口

接口:interface

数组

数组:int [].String []

2.1.4:结构:

2.1.4.1:定义结构

// 访问修饰符 关键字struct 结构名 public struct name { //结构体 }

2.1.4.2:结构的使用

2.1.4.2.1:可以不使用new,直接定义结构对象即可

2.1.4.2.2:声明结构对象后,必须给结构对象赋初始值

2.1.4.3:结构的使用经验:当对象需要较少的字段来表现时,可以使用结构

2.2:不同类型的参数传递

 

作为方法参数时

没有修饰符

有ref修饰符

值类型

在方法外部不能保存方法内对参数的修改

在方法外部可以保存方法内对参数的修改

引用类型

在方法外部可以保存方法内对参数的修改

 

3.使用集合组织相关数据

3.1:集合概述

3.1.1:ArrayList属于System.Collection命名空间

3.1.1.1:ArrayList常用方法和属性

属性名称

说明

 

count()

获取集合中实际元素数

返回值类型

方法名称

说明

void

Add(object obj)

添加对象到集合的结尾处

RemoveAt(int index)

移除指定索引处的元素

Remove(object obj)

移除特定元素

Clear()

移除所有元素

3.1.1.2:ArrayList中获取元素的方法也和数组一样通过索引(index)来访问

//创建集合 ArrayList list = new ArrayList() { new SE(){name="Demo1",Age=20}, new SE(){name="Demo2",Age=16}, } //通过下标来获取 SE se = (SE)list[0];

3.1.2:Hashtable属于System.Collection命名空间,是键值对储存

属性名称

说明

 

Count

获取包含扎起Hashtable中键值对的数目

 

Keys

获取包含在Hashtable中健的集合

 

Values

获取包含在Hashtable中值的集合

返回值类型

方法名称

说明

void

Add(object key,object value)

将指定的键和对的元素添加到Hashtable中

Remove(object key)

移除带有特定健的元素

Clear()

移除所有元素

3.2:泛型和泛型集合

3.2.1:自己看书

4.深入类的方法

4.1:构造函数

4.1.1:构造函数的特点

4.1.1.1:方法名与类名相同

4.1.1.2:没有返回值类型

4.1.1.3:主要完成对象的初始化工作

4.2:方法重载

4.2.1:重载的特点:

4.2.1.1:方法名相同

4.2.1.2:发布方法的参数类型不同或者参数个数不同

4.2.1.3:在同一个类中

4.3:对象交互

4.3.1:万物皆对象,对象与对象互相独立,互不干涉.对象通过属性和方法进行交互.可以认为方法的参数和方法的返回值都是对象间相互传递的信息

5.初识继承和多态

5.1:继承概述

5.1.1:继承的目的:移除类的冗余代码

5.1.2:继承是面向对象中的重要特性

5.1.3:继承符合is a关系

5.1.4:base关键字和protected修饰符

5.2.4.1:base能在子类中调用父类非私有的属性和方法

5.2.4.2:protected修饰符,代表能在本类和子类中使用,其他类不能使用

5.1.5:可以在子类的构造函数中通过base关键字显示调用父类的构造函数

5.2:继承的使用

5.2.1:继承具有传递性,单根性

5.2.2:通过使用sealed关键字来修饰类不能被继承

5.2.3:is:可以判断左边的对象是否属于右边给定的类型,属于则返回true,不属于则返回false

List<SE> list = new List<SE>(); foreach(SE se in list) { if(se is SE) { Console.write("诶嘿"); } }

5.2.4:继承的价值:

5.2.4.1:模拟现实世界的关系,符合面向对象的编程规则

5.2.4.2:实现代码的重用

5.2.4.3:使程序结构,子类父类结构清晰

5.3:多态

5.3.1:通过重写来解决继承遗留的问题

5.3.1.1:通过virtual来定义虚方法

//访问修饰符 virtual 返回类型 方法名() { //方法体 }

  

5.3.1.1:通过override来重写虚方法

//访问修饰符 override 返回类型 方法名() { //方法体 }

  

 

6.深入理解多态

6.1:里氏替换原则

6.1.1:里氏替换原则:子类可以替换父类并且出现在父类能够出现的任何地方,且程序行为不会发生任何变化,同时父类不能替换子类

6.1.2:应用:

6.1.2.1:父类作为形参--子类作为实参

6.1.2.2:父类作为返回类型--子类作为返回值

6.1.2.3:声明父类new子类

6.2:抽象类和抽象方法

6.2.1:抽象类是一个宏观,抽象的概念,不是某一个具体的类

6.2.2:抽象类无法实例化

6.2.3:代码

// 访问修饰符 abstract关键字 class关键字 类名 public abstract class Demo {   //访问修饰符 abstract关键字 返回值类型 方法名 public abstract void Show(); }

  

 

7.可扩展标记语言XML

7.1:XML概述

7.1.1:XML成为可扩展标记性语言.全称Extensible Markup Language.

7.1.2:操作XML:

对象

属性和方法

说明

XmlDocument

属性:DocumentElement

获取节点

属性:CHildNodes

获取子节点

方法:Load()

读取整个XML的结构

XmlNode

属性:InnerText

当前节点的值

属性:Name

当前节点的名称

属性:childNodes

当前节点的所有子节点

7.2:操作方法

7.2.1:

XmlDocument xmlDoc = new XmlDocument(); //加载Xml文件xmlDoc.Load("FullChanels.xml"); //获取根节点 XmlElement xmlRoot = xmlDoc.DocumentElement; //遍历Channel节点 foreach(XmlNode node in xmlRoot.childNodes) {   console.write(node["NodeName"].InnerText); }

  

 

8.文件操作

8.1:文件概述

8.1.1:无

8.2:读写文件

8.2.1:IO五步骤,需要引入命名空间(System.Io)

8.2.1.1:创建文件流

8.2.1.2:创建阅读器或者写入器

8.2.1.3:执行读写操作

8.2.1.4:关闭阅读器或者写入器

8.2.1.5:关闭文件流

8.2.2:代码:写入

//文件路径 string path = "E:\"; //文件内容 string content = "内容" //创建文件流 FileStream fs = new FileStream(path,FileMode.Create); //创建写入器 //防止乱码,设置字符编码,也可以自定义Encoding.GetEncoding("Unicode") StreamWriter sw = new StreamWriter(fs,Encoding.Default); //将内容写入文件 sw.Write(context); //关闭写入器 sw.Close(); //关闭文件流 fs.Closw();

8.2.2.1:FileMode的值

模式

作用

追加

Append

若存在文件,则打开该文件并查找到文件尾,或者创建一个新文件。这需要 Append 权限。FileMode.Append 只能与 FileAccess.Write 一起使用。试图查找文件尾之前的位置时会引发 IOException 异常,并且任何试图读取的操作都会失败并引发 NotSupportedException 异常。

新建/覆盖

Create

指定操作系统应创建新文件。如果文件已存在,它将被覆盖。这需要 Write 权限。FileMode.Create 等效于这样的请求:如果文件不存在,则使用 CreateNew;否则使用 Truncate。如果该文件已存在但为隐藏文件,则将引发 UnauthorizedAccessException异常。

新建新的文件

CreateNew

指定操作系统应创建新文件。这需要 Write 权限。如果文件已存在,则将引发 IOException异常。

打开

Open

指定操作系统应打开现有文件。打开文件的能力取决于 FileAccess 枚举所指定的值。如果文件不存在,引发一个 FileNotFoundException 异常。

打开/新建

OpenOrCreate

指定操作系统应打开文件(如果文件存在);否则,应创建新文件。如果用 FileAccess.Read 打开文件,则需要 Read权限。如果文件访问为 FileAccess.Write,则需要 Write权限。如果用 FileAccess.ReadWrite 打开文件,则同时需要 Read 和 Write权限。

清空文件

Truncate

指定操作系统应打开现有文件。该文件被打开时,将被截断为零字节大小。这需要 Write 权限。尝试从使用 FileMode.Truncate 打开的文件中进行读取将导致 ArgumentException 异常。

8.2.3:代码:读取

//文件路径 string path = "E:\"; //文件内容 string content; //创建文件流 FileStream fs = new FileStream(path,FileMode.Open); //创建读取器 //防止乱码,设置字符编码,也可以自定义Encoding.GetEncoding("Unicode") StreamReader sr= new StreamReader(fs,Encoding.Default); //将内容读入content content = sr.ReadToEnd(); //关闭写入器 sr.Close(); //关闭文件流 fs.Closw();

8.2.3.1:StreamReader方法:

模式

作用

读取一行数据

ReadLine()

从当前流中读取一行字符并将数据作为字符串返回。

从当前位置读到末尾

ReadToEnd()

读取来自流的当前位置到结尾的所有字符。

关闭

Close()

关闭 StreamReader 对象和基础流,并释放与读取器关联的所有系统资源。

8.3:文件和目录操作

8.3.1:静态类

8.3.1.1:File类官方链接

微软官方链接:https://docs.microsoft.com/zh-cn/dotnet/api/system.io.file?view=netframework-4.8

8.3.1.1.1:摘要

返回值

方法名称

说明

bool

Exists(String)

确定指定的文件是否存在。

void

Copy(String, String)

将现有文件复制到新文件。 不允许覆盖同名的文件。

Move(String, String)

将指定文件移到新位置,提供要指定新文件名的选项。

Delete(String)

删除指定的文件。

8.3.1.2:Directory类官方链接

微软官方链接:https://docs.microsoft.com/zh-cn/dotnet/api/system.io.directory?view=netframework-4.8

8.3.1.2.1:摘要

返回值

方法名称

说明

bool

Exists(String)

确定给定路径是否引用磁盘上的现有目录。

void

Move(String, String)

将文件或目录及其内容移到新位置。

Delete(String)

从指定路径删除空目录。

Delete(String, Boolean)

删除指定的目录,并删除该目录中的所有子目录和文件(如果表示)。

8.3.2:非静态类

8.3.2.1:FileInfo类官方链接

微软官方链接:https://docs.microsoft.com/zh-cn/dotnet/api/system.io.fileinfo?view=netframework-4.8

8.3.2.1.1:摘要

属性

说明

Exists

获取指示文件是否存在的值

Extension

获取表示文件扩展名部分的字符串。

FullName

获取目录或文件的完整目录。

Name

获取文件名。

返回值

方法名称

说明

FileInfo

CopyTo(String)

将现有文件复制到新文件,不允许覆盖现有文件。

void

Delete(String)

从指定路径删除空目录。

Delete(String, Boolean)

删除指定的目录,并删除该目录中的所有子目录和文件(如果表示)。

MoveTo(String)

将指定文件移到新位置,提供要指定新文件名的选项。

8.3.2.2:DirectoryInfo类官方链接

微软官方链接:https://docs.microsoft.com/zh-cn/dotnet/api/system.io.directoryinfo?view=netframework-4.8

8.3.2.2.1:摘要

返回值

方法名称

说明

DirectoryInfo[]

GetDirectories()

返回当前目录的子目录。

FileInfo[]

GetFiles()

返回当前目录的文件列表。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!