数组:
<类型名>[,] <变量名>=new <类型名>[行,列];
ref/out引用类型:
用于参数的引用传递
ref 实参必须被赋值过,并且不能是常量,但是out就没有这个限制
调用的时候也要加ref,比如fun(ref x,ref y);
参数数组:
使用关键字params限定参数为数组。即传递数组给函数,通过Arr.length获得数组的长度。可以给它传递数组,也可以给它传递多个符合数组类型的值。
重载只与参数列表有关,只有返回值不同的两个函数不是重载
委托:
委托类似于C/C++中的函数指针。委托需要4步才能使用,一是声明委托类型,二是声明委托变量,三是赋值委托变量,四是通过调用委托变量调用函数。
举例说明:
delegate bool Watch(int[] realData);//声明委托类型,是形如bool XXX(int[])的委托类型
bool a(int[] b);//这是一个函数a
Watch Wp;//声明委托变量
wp = new Watch(a);或者wp = new Watch();wp = a;
int[] x={0,1,2};
Wp(x);
委托在处理事件相应的时候使用非常广泛
命名空间:
便于多人合作和保护
using XXX省略命名空间
using XXX=YY把需要填写的命名空间缩短
命名空间可以嵌套
using作用:
- 保护
- using 对象,结束完就立刻回收
作用域:
默认寻找具有“最近”作用域的标识符
对象:
属性:C#中属性的本质是方法,但是表现形式却是类里面的值。属性与内部数据成员并不是一一对应的。
析构函数:
C#一般不写析构函数,也不调用析构函数,但是一般会写一个dispose()方法用于释放
接口:
- 只能被继承
- 不能实例化
- 一种契约
- 接口没有值,只有方法
多态:
对象多态
接口多态
对象关系:
继承、包含、集合
运算法重载