C#的一些小知识
程序员文章站
2022-05-16 11:57:26
1.var关键字 var是一个弱类型,可以替代任何类型 有以下四个特点 1.必须在定义时初始化 2.初始化完成吼,不能给其赋类型不同的值 3.var要求是局部变量 4.使用var定义变量和object不同,它在效率上和使用强类型方式定义变量完全一样。 2.ref和out的区别 注:在C 中,方法的参 ......
1.var关键字
var是一个弱类型,可以替代任何类型
有以下四个特点
1.必须在定义时初始化
var s="adcd"; //可以 var s; s="abcd"; //不可以
2.初始化完成吼,不能给其赋类型不同的值
3.var要求是局部变量
4.使用var定义变量和object不同,它在效率上和使用强类型方式定义变量完全一样。
2.ref和out的区别
注:在c#中,方法的参数传递有四种类型:传值(by value),传址(by reference),输出参数(by output),数组参数(by array)。传值参数无需额外的修饰符,传址参数需要修饰符ref,输出参数需要修饰符out,数组参数需要修饰符params。
1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。
2、使用ref和out时,在方法的参数和执行方法时,都要加ref或out关键字。以满足匹配。
3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。
两个的区别:ref是有进有出,out是只出不进。
3.委托
声明委托
//delegate <return type> <delegate-name><parameter list> public delegate int mydelegate (string s);
实例化委托
public delegate void printstring(string s); ... printstring ps1 = new printstring(writetoscreen); printstring ps2 = new printstring(writetofile);
委托的多播
使用"+"运算符进行合并 一个合并委托调用它所合并的两个委托。只有相同类型的委托可被合并
// 创建委托实例 numberchanger nc; numberchanger nc1 = new numberchanger(addnum); numberchanger nc2 = new numberchanger(multnum); nc = nc1; nc += nc2; // 调用多播 nc(5); //调用nc时会同时调用nc1和nc2