深入.NET平台和C#编程

本文深入解析了.NET框架的结构与特性,包括CLR、FCL等核心组件,以及C#的数据类型、封装、继承和多态等面向对象编程特性。详细介绍了集合类如ArrayList、Hashtable、List<T>和Dictionary<K,V>的使用方法。

深入.NET平台和C#编程

第一章 深入.NET框架

1…NET框架的魅力

.NET是开发.NET应用程序的核心基础,.NET框架提高了软件的可复用性、可扩展性、可维护性和灵活性;对Web应用的强大支持。

2…NET框架结构

主要包含公共运行语言时(CLR)和框架类库(.NET Framework)。

1.WPF:是微软操作系统的 核心开发之一

2.WCF:程序进行通信

3.WF:工作流

4.Windows CardSpace :验证网络使用者身份的新方法

5.LINQ:各种数据源编写LINQ查询

3.CLR

CLR全称公共运行语言时,它是所有.NET应用程序运行时的环境,是所有.NET应用程序都要使用的编程基础。

CLR的组成:

包含三个组成部分CLS(公共语言规范)和CTS(通用类型系统)以及MSIL(中间语言)。

4.FCL

一部分被封装好的功能的集合。

​ 1.NET的核心类库:

​ 1.System : 此命名空间包含所有其他的命名空间。

​ 2.System.Collect.Generic : 支持泛型操作。

​ 3.System.IO :支持对文件的操作。

​ 4.System.NET : 支持对网络协议的编程。

​ 5.System.Data : 提供对表示ADO.NET结构类的访问。

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

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

5.类和对象

类定义了一组概念的模型,而对象是真正的实体。关系如下:

​ 1、由对象归纳类,是归纳对象共性的过程。

​ 2、在类的基础上,将状态和行为实体化为对象的过程称为实例化。

​ 3、只写属性:只包含set访问器。

​ 4、只读属性:只包含get访问器。

​ 5、读写属性:同时包含get和set访问器。

6.封装

​ 1、保证数据的安全性

​ 2、提供清晰的对接口

​ 3、类内部实现可以任意修改,不影响其他类

第二章 深入C#数据类型

1.概述

1.值类型:值类型源于System.VauleType,值类型主要包括数据类型(如int,double,float)和枚举类型。

2引用类型:引用类型源于System.Object家族,在C#中引用类型主要包括数组、类和接口。

2.结构

1.结构的定义:

	访问修饰符 struct  结构名
    {
        //结构体
    }

结构可以有方法也可以有字段
定义时,结构中的字段不能被赋初始值

2.结构的使用

1.可以不用new,直接定义结构的对象

2.声明结构的对象后,必须给结构的成员赋初始值

3.装箱和拆箱

拆箱:拆箱是引用类型转化为基本类型

装箱:装箱是基本类型转化为引用类型

4.不同类型参数传值

使用值传递,在方法中对参数值的更改在调用后不保留。

使用ref方式传递,可以保留对参数值的更改。

5.值方式参数传递

在值方式传递参数时,参数可以是引用类型,也可以是值类型。

1.使用引用类型作为参数

2.使用值类型作为参数

6.引用方式参数传值

在引用方式传递参数时,参数可以是引用类型,也可以是值类型。

1.使用引用类型作为参数

2.使用值类型作为参数

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

1.ArrayList

ArrayList非常类似于数组,也有人称它为数组列表,ArrayList可以动态维护。ArrayList类属于System.Coolections命名空间,使用它使一定要导入命名空间。

ArrayList常用的方法和属性:

属性名称说明
Count获取ArrayList中实际包含的元素数
返回值方法名称说明
intAdd(Object value)将对象添加到ArrayList的结尾处
voidRemove(int index)移除ArrayList指定索引处的元素
voidRemoveAt(Object vaule)从ArrayList中移除特定元素
voidClear()从ArrayList中移除所有元素

2.Hashtable

Hashtable的数据结构统称为哈希表,也有人称它为“字典”,Hashtable的数据时通过键(Key)和值(Value)来组织的。Hashtable属于System.Coolections命名空间,它的每一个元素都是键\值对。

Hashtable常用的属性和方法:

属性名称说明
Count获取包含在Hashtable中的键/值对的数目
Keys获取包含在Hashtable中键的集合
Values获取包含在Hashtable中值的集合
返回值类型方法名称说明
voidAdd(Object key,Object values)将带有指定键和值的元素添加到Hashtable中
voidRemove(Object key)从Hashtable移除带有特定键的元素
voidClear()从Hashtable中移除所有元素

3.泛型

泛型是C#2.0中的一个新特性。通过泛型可以最大限度地重用代码,保护类型的安全和提高性能。泛型集合可以约束它所储存的对象类型,List和Dictionary<K,V>访问元素无需进行类型转换。

4.泛型集合List

语法:

List<T> 对象名 = new List<T>();

""中的T表明集合中管理的元素类型,对集合元素类型进行约束。

泛型List与非泛型ArrayList的区别:

异同点ListArrayList
不同点对所保存元素进行类型约束。添加/读取值类型元素无需拆箱和装箱。可以增加任何类型。添加/读取值类型元素需拆箱和装箱。
相同点通过索引访问集合的元素。添加元素方法相同。删除元素方法相同。

5.泛型集合Dictionary<K,V>

泛型集合Dictionary<K,V>它具有泛型的全部特征,编译时检查类型约束,获取元素无需进行类型转换,存储方式和Hashtable相似。

语法:

Dictionary<K,V> 对象名 = new Dictionary<K,V>();

<K,V>中K表示集合中Key的类型,V表示Value的类型
null不能作为key,编译的报错,运行的时候

泛型Dictionary<K,V>与非泛型Hashtable的区别:

异同点Dictionary<K,V>Hashtable
不同点对所保存元素进行类型约束。添加/读取值类型元素无需拆箱和装箱。可以增加任何类型。添加/读取值类型元素需拆箱和装箱。
相同点通过Key获取Values。添加元素方法相同。删除元素方法相同。b遍历方法相同。

6.泛型类

语法:

public class 类名<T>
{
	//.........
}

T是类型参数,代表具体的数据类型,可以是类参数,也可以是基本数据类型

第四章 深入类的方法

1.构造函数

语法:

访问修饰符  类名()
{
    //方法体
}

方法名与类名相同

没有返回值类型

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

2.带参构造函数

语法:

访问修饰符  类名(参数列表)
{
    //方法体
}

3.显示方式:

​ 隐式:隐藏的无参
​ 1、就是创建一个类,没有手写构造函数的时候当前类自带的构造函数
​ 2、就是无参的构造函数
​ 显示:自定义构造
​ 就是自定义构造函数
​ 参数的格式:
​ 有参:类名()括号里有参数
​ 无参:类名()括号里没有参数

4.构造函数特点

方法名相同

方法参数类型不同或者参数个数不同

在同一个类中

第六章 初始继承和多态

1.什么是继承

1.移除类的沉余代码

2.继承的概念

大致的来说就是子承父,也就是说一个类可以继承另一个类,被继承的类称为父类(基类),继承其他的类称为子类(派生类)。继承是面向对象编程中的一个非常重要的特征。

2.base关键字和protectde修饰符

base关键字:它表示父类,可以访问父类的成员。例如父类的属性、方法。

protected修饰符:protected修饰符这个访问修饰符修饰的成员允许被子类访问,而不允许其他非子类访问。

3.子类构造函数

1.隐式构造函数:由于没有指明调用父类的哪一个构造函数时,所以系统会隐式地调用父类的无参构造函数。

2.显示构造函数:在C#中只要在子类的构造函数后添加“:base(参数列表)”,就可以知道该子类的构造函数调用父类的哪个构造函数。

4.继承的特性

1.继承的传递性

2.继承的单根性

5.继承的价值

继承模拟了现实世界的关系,OOP中强调一切皆对象,符合面向对象的编程思想。

继承实现了代码的重用,合理的使用基础,使代码更加简洁。

继承使得程序结构更加清晰,子类和父类的层次结果更加清晰。

6.多态

语法:


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

一种事物的多种形态。

7.重写特点

1.不同的类。

2.被重写的方法,方法名+参数必须和父类一模一样。

3.被子类重写的方法,在父类中必须明确标注出,当前方法可以被子类重写。

4.如果子类当前方法是在重写父类的方法,那么必须用overrirde标注。

第七章 深入理解多态

1.里氏替换概述

1.里氏替换原则的应用:里氏替换原则是软件应该遵守的重要原则之一。

2.is和as操作符的使用:is操作符用于检查对象和指定的类型是否兼容。as操作符主要用于两个对象之前的类型转换。

2.什么是抽象类和抽象方法

抽象方法是一个没有实现的方法,通过在定义方法是增加abstract关键字来声明抽象方法。

语法:

访问修饰符  abstract  返回值类型  方法名();

抽象类语法:

	访问修饰符  abstract class 类名{}

含有抽象方法的类就是抽象类。

3.抽象类和抽象方法的应用

如何实现抽象方法:

与子类重写父类的虚方法一样,在子类中使用override关键字重写抽象方法。

语法:

访问修饰符  override  返回类型   方法名();

4.虚方法和抽象方法的区别

虚方法抽象方法
用virtual修饰用abstract修饰
要有方法体,即使是一个分号不允许有方法体
可以被子类override必须被子类override
除了密封类外都可以定义只能在抽象类中定义

5.面向对象的三大特征

1.封装:保证对象自身数据的完整性和安全性。

2.继承: 建立类之间的关系,实现代码的复用,方便系统的扩展。

3.多态: 相同的方法调用可实现不同的实现方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值