函数
定义:一个较大的程序一般分为若干个程序块,每一个模块用来实现一个特定的功能。
所有高级语言里都有子程序这个概念,用子程序实现模块功能。
在c#语言中,子程序的作用是由一个主函数和若干个函数构成
由函数调用其他函数,其他函数也可以相互调用,一个函数可以被一个函数或多个函数调用任意次
作用:在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用。
要善于利用函数,以减少重复编写程序段的工作量
函数的定义方法
void 是没有返回值,括号内可以填写参数
private 只能在当前类里应用
public 可以在整个命名空间里使用
函数的注释 在函数上面输入三个///
函数一个是传值,一个是传值
传值就是把实参的值传到所调用的函数中,实参的值并没有发生变化,默认的传值类型有
int 类型,浮点类型,bool类型,char类型,结构体等
传址就是将调用的函数里面的操作,实参的值也会跟着发生变化,传址的有数组和字符串string。
数据分类 值类型和引用类型
值类型就是传值的那种,引用类型包括字符串类型,数组,对象
字符串类型特殊,字符串实际上是一个字符char[]数组,它在修改的时候并不是直接修改,而是
新开辟一个新的字符串,所以它在调用赋值的时候相当于传值,所以它是引用类型
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 函数 { class Program { //没有返回值 public void aa() { Console.WriteLine("Hello world!"); } //没有返回值,没有参数 public void leijia() { Console.Write("请输入一个整数:"); int a = int.Parse(Console.ReadLine()); int sum = 0; for (int i = 1; i <= a; i++) { sum += i; } Console.WriteLine(sum); } //没有返回值,有参数 public void leijia(int z) { int sum = 0; for (int i = 1; i <= z; i++) { sum += i; } Console.WriteLine(sum); } //有返回值,并且有参数 public int Leijia1(int z) { int sum = 0; for (int i = 1; i <= z; i++) { sum += i; } return sum; } //有返回值,没有参数 public int leijia2() { Console.Write("请输入一个整数:"); int a = int.Parse(Console.ReadLine()); int sum = 0; for (int i = 1; i <= a;i++ ) { sum += i; } return sum; } static void Main(string[] args) { //函数 //一个较大的程序一般都分为若干个程序块,每一个模块用来实现一个特定功能 //函数的作用就是减少重复编写程序段的工作量 //Void是没有返回值的 //初始化这个类,是为了调用这个类里面的函数 Program hanshu = new Program(); //hanshu.aa(); //函数必须经过调用才能执行 //累加求和 //一 没有返回值,没有参数 hanshu.leijia(); //二 没有返回值,有参数 //Console.Write("请输入一个整数:"); //int a = int.Parse(Console.ReadLine()); //hanshu.leijia(a); //三 有返回值,有参数,返回值需要接收才能使用 //Console.Write("请输入一个整数:"); //int a = int.Parse(Console.ReadLine()); //int sum = hanshu.Leijia1(a); //Console.WriteLine(sum); //四 有返回值,没有有参数,返回值需要接收才能使用 //int sum = hanshu.leijia2(); //Console.WriteLine(sum); //返回值为0或者1,只适合进行判断,true或者false //传值只是把数值传递过去,并没有改变变量 //out可以在一个函数中同时返回多个值,而return只能返回一个值 //out 是需要被赋值的,仅仅是把变量的地址码传输过去,也就是仅仅把箱子过来 //程序段完成后,要将此箱字连同已经赋值的箱子一起传输回去 //传址就是把变量地址码传过去, Console.ReadLine(); } } }