函数、函数的递归、重载、委托的声明
来源:互联网 发布:淘宝发物流怎么填单号 编辑:程序博客网 时间:2024/05/29 13:42
一、函数的定义与使用
static void Write(){
Console.WriteLine("HanShu")
}
Write();
函数的定义是在Class中的,与主函数平级
二、返回值和参数
static int Plus(int num1,int num2) 函数定义时的参数叫形参{
int sum = num1+num2;
return sum;
}
1、使用
int num1 = 35;
int num2 = 45;
int res = Plus(num1,num2); 函数使用时的参数叫实参
2、
int res = plus(35,45); 如果函数里有参数则需要赋值给一个
新的变量来使用!
3、例子:在数组中获取最大值
static int MaxNum(int[] Array)
{
int max = Array[0]; 默认第一个数(0号)为最大值
for (int i = 1; i < Array.Length; i++) 所以i要从1开始!
{
if(Array[i] > max)
{
max = Array[i];
}
}
return max; 返回值要写在循环外!
}
int[] Array = { 2, 3, 567, 987, 234, 3456 };
Console.WriteLine(MaxNum(Array));
三、参数数组
在函数的参数前加 params 即构成参数数组1、例子
static int Plus(params int[] array) int 类型的参数数组
{
int sum = 0;
for (int i = 0; i < array.Length; i++)
{
sum += array[i];
}
return sum;
}
int sum2 = Plus(23, 345, 746, 34, 5);
区别:与数组参数的不同在与函数的调用,我们可以传递过来任意多个参数,
然后编译器会为我们自动组成一个数组,减少了我们创建一个数组
的过程。
四、结构函数
1、定义struct Total
{
public int a;
public int b;
public int Num()
{
return a + b;
}
}
2、初始化、赋值与调用
Total total; 如果需要在使用方法,需要重新初始化一个变量!
total.a = 2;
total.b = 5;
Console.WriteLine(total.Num());
特点:如果要重复调用一个方法,但是不同的值或变量,可以定义一个结构函数
结构函数可以有参数,(total)也可以使用函数里的属性
五、函数重载
1、为什么使用函数的重载static int MaxValue(int[] intArray)
{
...
return ;
}
这个函数只能取得int类型的数组最大值,如果要取得double类型的最大值
static double MaxValue(double[] doubleArray)
{
...
return ;
}
函数名字相同,参数不同,叫函数的重载 (函数名与参数都相同,构不成函数重载)
编译器通过识别不同的参数去选择调用哪个函数
六、委托
1、声明delegate double MyDelegate(double param1, double param2);
(1) 在命名空间(namespace)下定义
(2) 与定义函数差不多,在委托名前加 delegate
(3) 委托不需要结构体
(4) 委托可以指向一个函数
2、如何指向一个函数
class Program 在class中定义一个函数
{
static double JiaFa(double param1,double param2)
{
return param1+param2;
}
static void Main(string[] args)
{
MyDelegate de; 给委托定义一个新的变量!
de = JiaFa;
de = 另一个函数; 委托可以指向多个函数
Console.WriteLine(de(2.3,34.2));
}
注意:委托指向的函数 (参数类型) 必须与委托的 (参数类型) 相同
七、函数的递归调用
说明:1、递归即在函数中调用自己2、要有一个结束条件来判断递归结束,否则会无限递归
static int F(int n)
{
if(n == 0) return 2; 结束条件
if(n == 1) return 3;
return F(n-1)+F(n-2); 调用自身
}
四舍五入
int res = (int)(number + 0.5f);
阅读全文
0 0
- 函数、函数的递归、重载、委托的声明
- 函数的重载||委托类型的定义
- 函数的重载和重复声明的区别
- 函数 函数的重载
- 函数-函数的重载
- C#构造函数的声明、重载与继承调用
- 函数的类型,函数的声明,函数的定义,函数的调用,函数嵌套,函数递归,形参实参
- API的函数声明
- 函数的声明
- 函数声明的意义
- 函数的声明
- 虚函数的声明
- 函数的声明
- C++ 函数的声明
- 函数的声明问题
- SHChangeNotify函数的声明
- 2. 函数的声明
- 时间函数的声明。
- React-Native开发总结-webview
- 把更改后的uboot烧写到开发板及遇到的问题
- Unity3D Shader之路 VS2015下Graphics Debugger调试Shader
- 欢迎使用Markdown编辑器写博客
- C#数据结构中的二叉树
- 函数、函数的递归、重载、委托的声明
- hive中的内部表、外部表、分区表
- Spring Boot系列十 Spring MVC全局异常处理总结
- 深入Spring Boot:排查@Transactional引起的NullPointerException
- 深入理解Java虚拟机-垃圾收集器与内存分配策略(三)
- org.apache.maven.archiver.MavenArchiver.getManifest错误
- 浏览器报错:ReferenceError: require is not defined
- 《软件测试的艺术(原书第2版)》【PDF】下载
- SQL语句删除单表中的重复数据