C# 函数

C# 函数,第1张

概述参数数组: C#允许为函数指定一个(只能指定一个)特殊参数,这个参数必须是函数定义中的最后一个参数,称为参数数组。参数数组允许使用个数不定的参数调用函数,可使用params关键字定义它们。 参数数组可以简化代码,因为在调用代码中不必传递数组,而是传递同类型的几个参数,这些参数会放在可在函数中使用的一个数组中。 定义舒勇参数数组的函数时,需要使用下列代码: static <returnType> < 参数数组:

C#允许为函数指定一个(只能指定一个)特殊参数,这个参数必须是函数定义中的最后一个参数,称为参数数组。参数数组允许使用个数不定的参数调用函数,可使用params关键字定义它们。

参数数组可以简化代码,因为在调用代码中不必传递数组,而是传递同类型的几个参数,这些参数会放在可在函数中使用的一个数组中。

定义舒勇参数数组的函数时,需要使用下列代码:

static <returnType> <Functionname>(<p1Type> <p1name>,...,params <type>[] <name>) {   ...   return <returnValue>; }

使用下面的代码可以调用该函数:

<Functionname>(<p1>,<val1>,<val2>,...)

其中<val1>和<val2>等都是<type>类型的值,用于初始化<name>数组,可以指定的参数个数几乎不受限制,但他们都必须是<type>类型。甚至根本不必指定参数。

下面的示例定义并使用带有params类型参数的函数:

class Program { static voID Main(string[] args) { int sum = GetVal(1,2,5,7,9); Console.Writeline($"总和为:{sum}"); } /// <summary>        /// 求和 /// </summary>        /// <param name="vals">可以用任意数量的int参数,但不接受其他类型</param>        /// <returns></returns>        public static int GetVal(params int[] vals) { int checkVal = 0 ; foreach (int item in vals) { checkVal += item; } return checkVal; } } 
 引用参数:
/// <summary>/// 使用ref关键字指定参数 /// </summary>/// <param name="val"></param>public static voID GetVal(ref int val) { val *= 2; Console.Writeline($"val的值:{val}"); } int num = 5; Console.Writeline($"num为:{num}"); //在函数调用中再次指定它(这是必需的)GetVal(ref num); Console.Writeline($"num为:{num}");

输出结果:

用作ref参数的变量有两个限制。首先,函数可能会改变引用参数的值,所以必须在函数调用中使用“非常量”变量。所以,下面代码是非法的:

 其次,必须使用初始化过的变量。C#不允许假定ref参数在使用它的函数中初始化,下面代码也是非法的:

 输出参数:
        /// <summary>        /// 获取数组中最大值的元素索引 /// 如果数组中有多个元素的值都是这个最大值,只提取第一个最大值的索引 /// </summary>        /// <param name="val"></param>        public static int MaxVal(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; } int[] myArray = { 1,8,3,9,0,2 }; int maxIndex; Console.Writeline($"myArray中的最大值为:{MaxVal(myArray,out maxIndex)}"); Console.Writeline($"第一个最大值的索引为:{maxIndex + 1}");

输出结果:

 ref和out的重要区别:

1. 把未赋值的变量用作ref参数是非法的,但可以把未赋值的变量用作out参数

2. 在函数使用out参数时,必须把它看成尚未赋值。即调用代码可以把已赋值的变量用作out参数,但存储在该变量中的值会在函数执行时丢失

3. out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候

总结

以上是内存溢出为你收集整理的C# 函数全部内容,希望文章能够帮你解决C# 函数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1214307.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存