一周学会C#(函数一)

一周学会 C# (函数一)

C# 才鸟( QQ:249178521 )

1. 前言

· ** C# ** ** 不支持全局函数 ** ** **

w ** 所有的函数必须在类内部声明 ** ** **

· ** 无源文件和头文件之分 ** ** **

w ** 所有的函数必须声明的时候被实现 ** ** **

** int ** ** NotAllowed() // ** ** 错误, ** ** C# ** ** 没有全局函数 **

** { **

** ... **

** } **

** sealed class ** ** Methods **

** { **

** ** ** void ** ** Inline() **

** { ... **

** } **

** ** ** void ** ** Error() **

** { ... **

** }; // ** ** 错误,函数不能有结尾分号 **

** ** ** int ** ** AlsoError(); // ** ** 错误, ** ** 函数必须声明的时候被实现 **

** } **

和 Java 一样, C# 不允许有全局函数。所有的函数必须在类或结构内实现。函数是类或结构的成员,函数也被称为方法。

C# 允许可以在类的声明中加入结尾分号,例如:

sealed class Methods

{

...

};// 可以有结尾分号

但是, C# 不允许在函数的声明中加入结尾分号,例如:

sealed class Methods

{

void NotAllowed() {...} ; // 错误, ** 函数不能有结尾分号 **

}

2. 声明函数

· ** 函数参数列表 ** ** **

w ** 各参数以逗号隔开 ** ** **

w ** 参数必须命名 ** ** **

w ** 没有参数时括号不能省略 ** ** **

** sealed class ** ** Methods **

** { **

** void ** ** Error( ** ** float ** ** ) // ** ** 错误, ** ** 参数没有命名 **

** { ... **

** } **

** ** ** void ** ** NoError( ** ** float ** ** delta) **

** { ... **

** } **


** ** ** int ** ** Error( ** ** void ** ** ) // ** ** 错误,无参数时不允许使用 ** ** void **

** { ... **

** } **

** ** ** int ** ** NoError() **

** { ... **

** } **

** } ** ** **

3. 值型参数

· ** 一般的函数参数是实参的一个拷贝 ** ** **

w ** 实参必须预先被赋值 ** ** **

w ** 实参可以是常量类型 ** ** **

** sealed class ** ** ParameterPassing **

** { ** ** **

** static void ** ** Method( ** ** int ** ** parameter) **

** { **

** parameter = 42; **

** } **

** static void ** ** Main ** ** () **

** { **

** ** ** int ** ** arg = 0; **

** Console.Write(arg); // ** ** 结果为 ** ** 0 **

** Method(arg); **

** Console.Write(arg); // ** ** 结果为 ** ** 0 **

** } **

** } **

** (注:为了叙述的方便,以后所出现的“ ** ** 参数”这个词均指函数参数,也就是所谓的形参) ** ** **

没有被 ref 或 out 修饰的函数参数是一个值型参数。值型参数只有在该参数所属的函数被调用的时候才存在,并且用调用时所传递的实参的值来进行初始化。当函数调用结束时,值型参数不复存在。

只有被预先赋值的实参才能被传递给值型参数,例如:

int arg; // arg 没有被赋初值

Method(arg);// 错误,实参必须预先赋初值

传递给函数的实参可以是纯粹的数而不是变量,例如:

Method(42);

Method(21 + 21);

Published At
Categories with Web编程
Tagged with
comments powered by Disqus