第七节 方法调用
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
案例1: static void Main(string[] args) { //方法调用 ComputeAvg(); Console.ReadKey(); } //方法(函数)无返回值,无参数的方法 static void ComputeAvg() { Console.Write("请输入数学成绩:"); double mathScoure = double.Parse(Console.ReadLine()); Console.Write("请输入英语成绩:"); double englishScoure = double.Parse(Console.ReadLine()); double result = (mathScoure + englishScoure) / 2; Console.WriteLine("平均分:{0}", result); } ———————————————————————————————————————————————————————— 案例2:两个数的乘积 static void Main(string[] args) { Console.Write("请输入a的值:"); int a = int.Parse(Console.ReadLine()); Console.Write("请输入b的值:"); int b = int.Parse(Console.ReadLine()); add(a, b);//带参数,无返回 double d = mul(a,b);//带参数 有返回 Console.WriteLine("两个数的积为:{0}", d); string str = say(); Console.WriteLine(str); Console.ReadKey(); } static void add(int num1, int num2) { //定义带参数的方法(涵数) Console.WriteLine("{0}+{1}={2}",num1,num2,(num1+num2)); } //带参数,带返回值的方法 static double mul(double num1,double num2)//double { double result = num1 * num2; return result; } static string say()//字符串 { return "Hello"; } ———————————————————————————————————————————————————— 案例3:比较两个数的最大值 static void Main(string[] args) { Console.Write("请输入第一个数a:"); double a = double.Parse(Console.ReadLine()); Console.Write("请输入第二个数b:"); double b = double.Parse(Console.ReadLine()); double d=big(a,b); Console.WriteLine("输出两个数的最大值:{0}",d); double e = big2(a, b); Console.WriteLine("输出两个数的最大值:{0}", e); bool f = big3(a, b); Console.WriteLine("a>b是否为真:{0}", f); Console.ReadKey(); } /// <summary> /// 获得两个数的最大值 /// </summary> /// <param name="num1">第一个数字</param> /// <param name="num2">第二个数字</param> /// <returns></returns> static double big(double num1, double num2) { double result = num1 > num2 ? num1 : num2; return result; // return num1 > num2 ? num1 : num2; } static double big2(double num1, double num2) { return num1 > num2 ? num1 : num2; } static bool big3(double num1, double num2) { return num1 > num2; } —————————————————————————————————————————————————————— 案例4:本月实际用水 值传递 static void Main(string[] args) { Console.Write("请输入本月用水吨数:"); double i = double.Parse(Console.ReadLine()); //值传递,只是将实参的值复制了一份给形参,他们之间没有任何关联 double d=acc(i); Console.WriteLine("该月水费为:{0}",d); Console.ReadKey(); } /*只要在方法(函数)遇到return关键字意味着该函数就终止了, * 将会忽略return之后的语句*/ static double acc(double b) { if (b <= 3.5) { return 3.5 * b; } return 3.5 * 2.8 + 4.2 * (b - 3.5); } —————————————————————————————————————————————————————————— 案例5:地址转换 static void Main(string[] args) { //传引用(传内存地址),对形参的更改,是会影响到实参的,因为形参和实参指向同一快内存地址 int[] qqq ={ 1, 2, 3, 4, 5 }; Console.WriteLine("引用前:"); for (int i = 0; i < qqq.Length; i++) Console.Write(qqq[i] + " "); dou(qqq); Console.WriteLine(); Console.WriteLine("引用后:"); for (int i = 0; i < qqq.Length; i++) Console.Write(qqq[i] + " "); Console.ReadKey(); } static void dou(int[] arr) { for(int i=0 ;i<arr.Length;i++) { arr[i] = arr[i] * 2; } }