今天已经开始学习 函数的参数部分了:
学习总结:
1.每个参数都有一个类型和一个名称,每个参数都在函数的代码中用作一个变量.
2.在调用参数时,必须使参数与函数定义中指定的参数完全匹配(类型、个数、顺序)。
3.参数数组:
C#允许指定一个(只能指定一个)特定的参数,这个参数必须是函数定义中的最后一个参数,称为参数数组。可以使用参数个数不定的参数调用函数,它可以使用 params 关键字来定义。
下面是参数数组的例子:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
//下面是参数数组.
static int SumVals(params int[] vals)
{
int sum = 0;
foreach (int val in vals)
{
sum += val;
}
return sum;
}
static void Main(string[] args)
{
//double[,] hillHeight = { { 1, 2, 3, 4 }, { 2,3,4,5}, { 3,4,5,6} }; //定义及初始化二维数组
//foreach(double height in hillHeight)
//{
// Console.WriteLine("{0}",height);
//}
//Console.ReadKey();
int sum=SumVals(1,3,4,5,7,5);
Console.WriteLine("SumVals数组的和是:{0}",sum);
Console.ReadKey();
}
}
}
4.引用参数和值参数
引用参数相当于是引用参数的地址,函数定义时和函数调用时都必须用 ref 关键字,在调用函数参数的值改变将会影响到参数的实际值,而值参数则不会改变。
使用引用参数时须注意2点:
(1).参数必须是变量类型,不能是常量。
(2).参数调用时,参数必须已经初始化,不能使参数在调用函数中初始化,这是不允许的。
下面是一个引用参数的例子:注意关键字 ref, 去掉 ref 就是值参数。
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static int Double(ref int val)
{
val = val * 2;
return val;
}
static void Main(string[] args)
{
Console.WriteLine("请输入一个数:");
int val = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("您刚才输入的值 val={0}",val);
Console.WriteLine("Double(val)={0}",Double(ref val));
Console.WriteLine("经函数处理之后的val={0}",val);
Console.ReadKey();
}
}
}