1.定义和使用函数
定义函数
static void Write(){
Console.WriteLine(“Text output from function .”);
}
函数的使用
static void Main(){
Write();
}
2.返回值
控制台应用程序函数的定义形式如下:
static (){
…
return ;
}
这里需要注意的是必须是类型的,当为void,表示这个函数不需要返回值,函数体不需要return语句,也可以写return;中断函数
3.参数
简单来讲,可以通过函数的参数来求得两个数字的和
例子:
static int Sum(int a,int b)
{
return a+b;
}
4.函数的重载overload
假设我们有一个函数用来实现求得一个数组的最大值
static int MaxValue(int[] intArray){
…
return;
}
这个函数只能用于处理int数组,如果想处理double类型的话需要再定义一个函数
static double MaxValue(double[] doubleArray){
…
return;
}
函数名相同,参数不同,这个叫做函数的重载(编译器通过不同的参数去识别应该调用哪一个函数)
//编译器会根据你传递过来的实参的类型去判定调用哪一个函数
5.委托的定义
委托(delegate)是一种存储函数引用的类型。
委托的定义指定了一个返回类型和一个参数列表
定义了委托之后,就可以声明该委托类型的变量,接着就可以把一个返回类型跟参数列表跟委托一样的函数赋值给这个变量。
委托的使用分两步
定义(和定义函数差不多,不过委托的定义不需要函数体,并且需要使用delegate关键字)
声明(变量)
结构体,枚举的使用同上都分为定义和声明
整数类型数组类型字符串类型都是直接声明变量的,因为类型的定义已经完成了(CLR中已经完成定义)
6.委托的使用
delegate double MyDelegate(double param1,double param2);
static double Multiply(double param1,double param2){
return param1*param2;
}
static double Divide(double param1,double param2){
return param1/param2;
}
double param1 = 34; double param2 =2;
MyDelegate de; //利用我们定义的委托类型声明一个新的变量
de = Multiply;//该变量指向函数Multiply的引用
de(param1,param2);
de = Divide;
de(param1,param2);