C#2010 自定义函数
在C#中,官方为各种类和属性定义了大量的方法供开发者调用。例如,之前介绍的在命令行中输出字符的Console.Write()、Console.WriteLine()等命令就是典型的方法。除了官方定义的方法外,开发者也可以自行编写函数,并调用函数机型计算。
1.定义新函数
在使用函数时,开发者需要先对函数的内容进行定义,指定函数需要完成的功能、需要输入的数据类型、数据的数量等。如果定义的函数为实函数,则还需要为函数定义返回的函数值等。声明一个典型的函数,方法如下所示。
[Modifier] Type FunctionName (Arguments…)
{
Statements;
[return Value];
}
在上面的代码中,中括号“[]”内的关键字为可选内容,显示了定义一个函数的方法,其关键字的含义如下所示。
● Modifier
Modifier关键字表示函数的修饰符,其作用与命名空间、类和变量的修饰符相同,都是用于定义函数的的作用域和生存周期。在C#中,函数可以使用的修饰符包括static、new、public、protected、internal、private、virtual、sealed、override、abstract和extern等。如果不为函数定义修饰符,则默认情况下函数只在当前语句块中可用。
除public等5种修饰符以外的几种修饰符将在之后面向对象编程的章节中详细介绍,在此将不再赘述。writeline函数 | |
● Type
Type关键字表示函数的返回值类型,即函数本身的值类型。在C#中,函数的返回值类型可
以是任意的值类型或引用类型,甚至包括自定义的数据类型。对于没有返回值的虚函数,其类型由void关键字指定。
● FunctionName
FunctionName关键字表示函数的实例名称,即在程序中调用该函数时需要书写的关键字。函数的命名规则与变量相同,都可以是任意字母、下划线“_”、中文字符开头,且允许出现数字的字符组合。
● Arguments…
Arguments…关键字表示函数的参数,即在执行函数时需要输入的数据值。函数的参数是一个集合,其可以由多个任意数据类型的变量组成。这些参数之间需要以逗号“,”隔开。由于C#是一种强类型的编程语言,因此在定义函数时,需要在参数之前加上参数的数据类型,数据类型与参数名应以空格隔开。关于函数的参数,请参考之后的小节。
● Statements
Statements关键字表示函数中的执行语句,即对函数的参数和外部的变量进行运算的语句,其可以是普通的赋值语句,或条件分支语句、循环语句和其他各种语句。理论上,C#不限制函数中的语句行数。
● Value
Value为return语句定义的函数返回值,其数据类型应符合之前的Type关键字。在默认状态下,一个函数可以包括多个参数,但只能有一个有效的返回值。例如,通过条件分支语句,可以定义多个函数返回值,但是在这些返回值中,只有条件成立的分支中的返回值是有效的。虚函数没有返回值,因此不需要使用return语句返回。
例如,定义一个计算两数平均值的函数,就需要先定义一个合适的函数数据类型,再为其添加两个参数,并编写计算的语句,定义一个返回值,代码如下所示。
double average(double a, double b)
{
double ave = (a + b) / 2;
return ave;
}
在上面的代码中,定义了一个双精度类型的函数average(),并为其定义了两个同类参数。在函数中,通过一个新的变量ave进行数据运算,最终通过return语句返回ave变量的值。
虚函数与实函数的区别主要在于函数的数据类型以及最终是否包含返回值。例如,上面的求两数平均值函数也可以通过虚函数来实现,但是需要在函数外先声明一个变量,然后再使用函数对变量进行操作,如下所示。
double ave = 0;
void average(double a, double b)
{
ave = (a + b) / 2;
}
在上面的代码中,就以虚函数的方式对变量ave进行了操作。在执行该函数后,即可为变量赋予一个新的值。
2.调用函数
在了解了自定义函数的方法之后,即可使用各种自定义的函数,以实现函数中语句的功能,或通过函数进行数据的交换等。在调用函数之前,首先需要区分函数的类型,实函数和虚函数的调用方法并不相同,如下所示。
● 调用实函数
实函数是有返回值的函数,其函数值为一个具体的变量。因此,在调用实函数时,应该将其作为变量,放在表达式中使用。例如,通过实函数返回两个数字中的最小值,代码如下。
private static double min(double a, double b)
{
if (a < b)
{
return a;
}
else
{
return b;
}
}
调用该函数,则开发者可以直接为函数添加参数,并将函数作为一个double值来使用。例如,将该函数放在一个表达式中计算,然后作为值赋予到新的变量中,代码如下。
double a = min(19, 22) + 5;
Console.WriteLine(a);//输出:24
● 调用虚函数
虚函数是没有返回值的函数,其本身往往只表示一个处理数据的过程,因此在调用虚函数时,不能将其作为一个值来使用,但可以将其作为一个指令执行。例如,编写一个对两个参数求和的虚函数,如下所示。
private static void and(int arg1,int arg2)
{
c = arg1 + arg2;
}
在执行以上函数时,需要在程序main()入口函数外部先声明各种变量,然后再在main()入口函数内执行函数,最后通过Console.WriteLine()方法输出结果,代码如下。
private static int a = 5 ,b = 7,c;
static void Main(string[] args)
{
and(a, b);
Console.WriteLine(c);
}//输出:12
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论