.net第一章总结

---恢复内容开始---

一丶
1.CLR公共语言运行库。FCL基础类库
2.NET是一个与硬件无关的程序执行平台,通过二次编译实现本机的运行,执行过程如下。

3.类型的推断 var关键字可以自动识别变量
例如 var n=0; int n=0;等价
4。break语句能够跳出循环语句。continue跳出当前循环,而不是完全跳出循环。


二丶字符串的常见操作
1.  .Length能够获取字符串的长度。

2.字符串可以直接用+相加,也可以用StringBuilder类实成员实现相加。
sb.Append();//sb为对象

3.截取字符串的一部分 变量.Substring(起始位置,截取位置)
string s1=str.Substring(0,2)

4.Split用法
1.用单个字符分割
string str="aaa,bbb,ccc";
string []sarray=str.split(',');//得到,分割的各个字符串
foreach(string i in sarray)
{
  Response.Write(i.Tostring()+"<br>"); 
}
输出
aaa
bbb
ccc

2.用多个字符分隔
string str="aaajbbbscccjdddseee";
string []sarray=str.Split(new char[2]{'j','s'});//得到以'j'.'s'分隔的各个字符串
foreach()
{
  ......
}
输出结果:
aaa
bbb
...

3.用字符串分割
using System.Text.RegularExpreesions;//引用

string str="aaajsbbbjsccc";
string[] sarray=Regex.Split(str,"js",RegexOptions.IgnoreCase);//得到一‘JS’分隔

三丶把123456789转换为12-345-6789
string a="123456789"
a=a.Insert(5,"-").Insert(2,"-");

四丶得到随机数的的方法
Random r=new Random();
int n1=r.next();//返回随机非负整数

五丶转换类型
Convert.To....,int.parse(),INT32.Parse()等;
INT32.Parse()性能更加优越

六丶常用的数学函数
Math.Ceilling();//返回大于或等于指定数字的最小整数

Math.Ceilling(0.00);//0
Math.Ceilling(0.40);//1
Math.Ceilling(0.60);//1
Math.Floor();返回小于或等于指定数字的最小整数


面向对象的重点  继承 委托 事件 反射

一丶继承

继承规则
1.派生类会继承有关基类所有成员。如果基类B是继承A,那么C继承B时也会继承A的成员。但构造、
函数和析构函数不能被继承。
2.派生类只能从一个类中继承,通过接口实现多重继承

访问基类成员
1.派生类访问时先调用基类构造函数,在调用派生类的构造函数;在执行其他调用过程
2.在派生类的方法中调用基类方法base.<基类方法名>;base.SayHello();
3.((ParentClass)child).SayHello();//显式类型转换

4.new可以隐藏基类的方法;

抽象和密封
密封类修饰符sealed,密封后不会被其他类继承

抽象类是专门用于继承而写的类,修饰符abstract
1.抽象类不能实例化,抽象方法没有具体的执行代码,在非抽象的派生类中重写代码。派生类方法  
重新加上修饰符override(同名抽象类的方法)
2.如果不想把方法写成抽象类,但方法在基类不具体实现,而在派生类重写。
把方法用修饰符virtual声明为虚函数,在继承类中通过override重写代码;

多重继承,C#不允许继承多个类,但允许继承多个接口;

接口是什么?接口修饰符interface;接口是只定义方法,没有具体的内容。在引用接口的类中定义方法

3.如果继承多个接口,接口中有同名的方法。则实现接口时

在调用接口的方法时候需要强制转换转换为相应的接口类型,

如果不强制转换则无法调用接口方法。

实现多个接口不同名称方法时前面加上public修饰符

 

二丶委托

1.委托的定义方法:和声明方法类似,区别是有修饰符delegate.

2.什么是委托:委托就是将传递参数的部分改为传递方法,能够方便的调用需要的方法。一种可以被方法赋值的类型。可以理解为函数地址的指针.

传递什么方法,调用什么方法。

要求委托和方法的参数类型,数量一致,返回值类型一致

3.不使用委托的缺点:只能传递参数,通过判断参数类型来找到需要方法。

不好判断,扩展性差。

 4.委托和传递给委托的方法参数类型和个数需要一致

5.多播委托

一个委托的对象可以绑定多个方法。当调用这个委托的对象的时候依次调用绑定的方法。

通过 “+” 来实现多个方法的绑定

 

三丶事件

事件的理解:事件与委托相似,当委托时被封装在类中,成为了事件

规范:

例子:Object 可以代表触发事件的对象,BoiledEventArgs代表关键参数,例如警报器需要的温度参数.

以热水器加热水温为例,当温度到达一定程度时,警报器发出警报

分析:

1.两个类,分别时热水器和警报器。

2.热水器有温度,型号等变量,存在一个加热的方法,以及一个继承了EventArgs类的温度参数类,BoiledEventArgs;

3.警报器存在一个方法,绑定事件后,当事件触发则调用此方法

热水器的类 

基本数据

委托和事件

关键的温度参数

存在烧水的方法,当水温大于一定温度时,将变量传递给温度类,使温度参数获取具体的值,判断事件是否绑定了警报方法,如果绑定了则传递热水器对象和温度参数,并执行绑定的方法。

 

创建警报器类,存在警报方法,如果绑定了事件,促发事件时则调用次方法。将sender转换为heater类可以访问热水器的基本信息.

主函数创建热水器类和警报器类,警报方法绑定事件,促发事件BoiledWater.调用警报方法。

 

 

四丶using

2.using别名,当不同的命名空间有相同的类时,区分两者的方法.

不同命名空间有同名的类

别名区分aclass= 第一个空间Myclass

使用方法。

 

---恢复内容结束---

一丶
1.CLR公共语言运行库。FCL基础类库
2.NET是一个与硬件无关的程序执行平台,通过二次编译实现本机的运行,执行过程如下。

3.类型的推断 var关键字可以自动识别变量
例如 var n=0; int n=0;等价
4。break语句能够跳出循环语句。continue跳出当前循环,而不是完全跳出循环。


二丶字符串的常见操作
1.  .Length能够获取字符串的长度。

2.字符串可以直接用+相加,也可以用StringBuilder类实成员实现相加。
sb.Append();//sb为对象

3.截取字符串的一部分 变量.Substring(起始位置,截取位置)
string s1=str.Substring(0,2)

4.Split用法
1.用单个字符分割
string str="aaa,bbb,ccc";
string []sarray=str.split(',');//得到,分割的各个字符串
foreach(string i in sarray)
{
  Response.Write(i.Tostring()+"<br>"); 
}
输出
aaa
bbb
ccc

2.用多个字符分隔
string str="aaajbbbscccjdddseee";
string []sarray=str.Split(new char[2]{'j','s'});//得到以'j'.'s'分隔的各个字符串
foreach()
{
  ......
}
输出结果:
aaa
bbb
...

3.用字符串分割
using System.Text.RegularExpreesions;//引用

string str="aaajsbbbjsccc";
string[] sarray=Regex.Split(str,"js",RegexOptions.IgnoreCase);//得到一‘JS’分隔

三丶把123456789转换为12-345-6789
string a="123456789"
a=a.Insert(5,"-").Insert(2,"-");

四丶得到随机数的的方法
Random r=new Random();
int n1=r.next();//返回随机非负整数

五丶转换类型
Convert.To....,int.parse(),INT32.Parse()等;
INT32.Parse()性能更加优越

六丶常用的数学函数
Math.Ceilling();//返回大于或等于指定数字的最小整数

Math.Ceilling(0.00);//0
Math.Ceilling(0.40);//1
Math.Ceilling(0.60);//1
Math.Floor();返回小于或等于指定数字的最小整数


面向对象的重点  继承 委托 事件 反射

一丶继承

继承规则
1.派生类会继承有关基类所有成员。如果基类B是继承A,那么C继承B时也会继承A的成员。但构造、
函数和析构函数不能被继承。
2.派生类只能从一个类中继承,通过接口实现多重继承

访问基类成员
1.派生类访问时先调用基类构造函数,在调用派生类的构造函数;在执行其他调用过程
2.在派生类的方法中调用基类方法base.<基类方法名>;base.SayHello();
3.((ParentClass)child).SayHello();//显式类型转换

4.new可以隐藏基类的方法;

抽象和密封
密封类修饰符sealed,密封后不会被其他类继承

抽象类是专门用于继承而写的类,修饰符abstract
1.抽象类不能实例化,抽象方法没有具体的执行代码,在非抽象的派生类中重写代码。派生类方法  
重新加上修饰符override(同名抽象类的方法)
2.如果不想把方法写成抽象类,但方法在基类不具体实现,而在派生类重写。
把方法用修饰符virtual声明为虚函数,在继承类中通过override重写代码;

多重继承,C#不允许继承多个类,但允许继承多个接口;

接口是什么?接口修饰符interface;接口是只定义方法,没有具体的内容。在引用接口的类中定义方法

3.如果继承多个接口,接口中有同名的方法。则实现接口时

在调用接口的方法时候需要强制转换转换为相应的接口类型,

如果不强制转换则无法调用接口方法。

实现多个接口不同名称方法时前面加上public修饰符

 

二丶委托

1.委托的定义方法:和声明方法类似,区别是有修饰符delegate.

2.什么是委托:委托就是将传递参数的部分改为传递方法,能够方便的调用需要的方法。一种可以被方法赋值的类型。可以理解为函数地址的指针.

传递什么方法,调用什么方法。

要求委托和方法的参数类型,数量一致,返回值类型一致

3.不使用委托的缺点:只能传递参数,通过判断参数类型来找到需要方法。

不好判断,扩展性差。

 4.委托和传递给委托的方法参数类型和个数需要一致

5.多播委托

一个委托的对象可以绑定多个方法。当调用这个委托的对象的时候依次调用绑定的方法。

通过 “+” 来实现多个方法的绑定

 

三丶事件

事件的理解:事件与委托相似,当委托时被封装在类中,成为了事件

规范:

例子:Object 可以代表触发事件的对象,BoiledEventArgs代表关键参数,例如警报器需要的温度参数.

以热水器加热水温为例,当温度到达一定程度时,警报器发出警报

分析:

1.两个类,分别时热水器和警报器。

2.热水器有温度,型号等变量,存在一个加热的方法,以及一个继承了EventArgs类的温度参数类,BoiledEventArgs;

3.警报器存在一个方法,绑定事件后,当事件触发则调用此方法

热水器的类 

基本数据

委托和事件

关键的温度参数

存在烧水的方法,当水温大于一定温度时,将变量传递给温度类,使温度参数获取具体的值,判断事件是否绑定了警报方法,如果绑定了则传递热水器对象和温度参数,并执行绑定的方法。

 

创建警报器类,存在警报方法,如果绑定了事件,促发事件时则调用次方法。将sender转换为heater类可以访问热水器的基本信息.

主函数创建热水器类和警报器类,警报方法绑定事件,促发事件BoiledWater.调用警报方法。

 

 

四丶using

2.using别名,当不同的命名空间有相同的类时,区分两者的方法.

不同命名空间有同名的类

别名区分aclass= 第一个空间Myclass

使用方法。

五丶@符号用法

1.

避免转义字符与需要的字符串冲突。

2。用于跨行字符

3.可以把关键字符便是当作普通的变量使用

(不经常用)

 六丶预处理指令

1.#define,#undef,要求写在第一行。

 

 

如果有DEBUG则会执行#IF内的语句,否则不执行

 

try-catch-finally捕获异常

 

例子

 

posted @ 2017-09-11 17:53  龙卷风摧毁停车厂  阅读(261)  评论(0编辑  收藏  举报