在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
6.函数 6.1定义和使用函数 ① 函数定义时都要使用static关键字,同时函数命名一般用PascalCasing方法 6.11 函数的返回值 返回值可以是返回类型,或者是隐式转换值 static double GetVal() { double checkVal = 8; if (checkVal < 5)
return checkVal; ; }
static void Main(string[] args) { GetVal(); } 这种情况是不行的因为GetVal()函数没有返回值 注意:当然在返回值为void类型的函数也可以有return;但return后不能加任何变量。 6.12参数 带有参数数组的函数定义static void GetVal(int [] intArray); 1参数数组(需添加关键字params)
例如: static int SumVals(params int[] vals) { int sum = 0; foreach (int val in vals) { sum += val; } return sum; }
static void Main(string[] args) { int sum = SumVals(1,5,2,9,8); Console.WriteLine("Summen values = {0}", sum); Console.ReadKey();
} 2引用参数(关键字ref) 定义函数:static int SumVals( ref int val); 调用函数 SumVals( ref val1); 注意:在进行引用传参时,val1一定是已经赋值的变量, 3输出函数(关键字out) 一个典型的应用是计数。 例如: static int MaxValue(int[] intArray, out int maxIndex) { int maxVal = intArray[0]; maxIndex = 0; for (int i = 1; i < intArray.Length; i++) { if (intArray[i] > maxVal) { maxVal = intArray[i]; maxIndex = i; } } return maxVal; }
static void Main(string[] args) { int[] myArray = { 1,8,3,6,2,5,9,3,0,2}; int maxIndex; Console.WriteLine("The maximum value in myArray is {0}",MaxValue(myArray,out maxIndex)); Console.WriteLine("The first occurrence of this value is at element {0}",maxIndex +1);
}
注意:在函数调用时,传参可以带值也可以不带值,要这一点与ref不同。如上面的out maxIndex就不带值,如果带值传递时,存储在该变量中的值会在函数执行时丢失。 6.2 变量的作用域 1,全局变量一定要使用关键字static或者const来声明。 2,若全局变量与局部变量同名,一定要使用《命名空间》.变量名 Pagram.Mystring; 数据交换可以使用带参的函数,或者使用全局变量 输出同时带有 字符串和数字 可使用一下句子: String text = “Line” + Convert.Tostring(i); 同时要注意: for(int i;int<10;i++) { } 其中的变量i的作用域只能在for循环里面,同样也可适用于while语句 6.3main函数 ①四种签名 (1) static void Mian() (2) static void Mian(string[] args) (3) static int Mian() (4) static int Mian(string[] args) 其中args是命令行参数
关于如何使用请看下面的例子: ① 输入代码:
Console.WriteLine("{0} command line arguments were specified:", args.Length); foreach (string arg in args)
Console.WriteLine(arg); Console.ReadKey(); 2在“解决方案资源管理器” 右击 “项目名称”选择”属性” 3选择调试并输入字符串
6.4 结构函数 可以添加函数 6.5 函数重载 Static void showdouble(ref int val) Static void showdouble( int val) 以上这两个函数重载取决于调用函数中的参数形式如:showdouble(ref val)就调用第一个,否则调用第二个。 6.6委托: 可以简单的认为其参数就是函数名: 请见代码: #region Using directives
using System; using System.Collections.Generic; using System.Text;
#endregion
namespace Ch06Ex05 { class Program { delegate double ProcessDelegate(double param1, double param2);
static double Multiply(double param1, double param2) { return param1 * param2; }
static double Divide(double param1, double param2) { return param1 / param2; }
static void Main(string[] args) { ProcessDelegate process; Console.WriteLine("Enter 2 numbers separated with a comma:"); string input = Console.ReadLine(); int commaPos = input.IndexOf(','); double param1 = Convert.ToDouble(input.Substring(0, commaPos)); double param2 = Convert.ToDouble(input.Substring(commaPos + 1, input.Length - commaPos - 1)); Console.WriteLine("Enter M to multiply or D to divide:"); input = Console.ReadLine(); if (input == "M") process = new ProcessDelegate(Multiply); else process = new ProcessDelegate(Divide); Console.WriteLine("Result: {0}", process(param1, param2)); Console.ReadKey(); } } }
运行结果
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论