函数在C语言中的概念是模块化编程,将某个功能封装成一个函数,可以被重复调用。
1.定义,声明和使用函数
static void Write()
{
Console.WriteLine("这是一个C#函数。");
}
static void Main()
{
Write();
Console.ReadKey();
}
为什么函数前面都要添加一个static呢?
答:说明这是一个静态函数,只能被类调用,而不能被类的对象调用。
函数的声明在C#中会自动生成,不需要我们去编写~~
2.函数的组成
函数 = 访问属性 + 返回值类型 + 函数名 + 参数
访问属性包括:公共+保护+私有+内部intervel+封闭sealed
返回值类型:return 所有数据类型;
函数名:要描述出函数的功能,一定要用英文
参数:函数定义中是形式参数,而调用函数中的是实际参数。值类型不能返回实际参数,而引用类型可以。
参数详解:
参数数组
C#允许为函数指定一个(只能指定一个)特定的参数,这个参数必须是函数定义中的最后一个参
数,称为参数数组。 格式:params <type>[] <name>
static int SumVals(params int[] vals)
{
int sum = 0;
foreach (int val in vals)
{
sum += val;
}
return sum;
}
static void Main()
{
int sum = SumVals(1, 5, 2, 9, 8);
Console.WriteLine("Summed Values = {0}", sum);
}
引用参数 关键词为ref
static void ShowDouble(ref int val)
{
val *= 2;
Console.WriteLine("val doubled = {0}", val);
}
ref的使用限制,1.参数必须是变量,不能是常量。2.变量必须先初始化。
输出参数 关键词为out
指定参数是输出参数,使用和执行方式和ref完全相同,但是不需要初始化。
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;
}