函数中的关键字及作用域
本章有几个比较重要的关键字:static ,void, params, ref, out, delegate.下面依次说明每一个需要注意的问题。
- Static 定义函数时需要用return返回值。
- Void 则不需要返回值。
- Params 1)在使用时放在函数定义的最后,如function(inta, int b,params int[] c). 2)用params定义的参数的传递的数量不受限制。
- Ref 用于指定引用参数,即函数处理的变量与函数调用中使用的变量相同,对这个变量进行任何的改变都会影响用作参数的变量值。在使用时注意1)不能指定const声明过的变量2)必须使用初始化过的变量。
- Out 用法与ref类似,但是后者不能用于未赋值的变量而前者可以,另外在使用Out参数时,其必须看作是还未赋值,即调用代码可以把已赋值的变量用作out参数,存储在该变量中的值会在函数执行时丢失。
- Delegate 除了直接调用函数之外,还可以通过委托调用它们。委托是用返回类型和参数列表定义的变量。给定的委托类型可以匹配返回类型和参数与委托定义相同的方法。
除了上述关键字之外,本章还需要注意作用域的问题。
<pre name="code" class="csharp">代码片段1
int i;
string text;
for(i=0;i<10;i++)
{
text="Line"+Convert.ToString(i);
Console.Writeline("{0}",text);
}
Console.Writeline("Last text output in loop:{0}",text);
代码片段2
int i;
string text="";
for(i=0;i<10;i++)
{
text="Line"+Convert.ToString(i);
Console.Writeline("{0}",text);
}
Console.Writeline("Last text output in loop:{0}",text);
代码1输出失败,因为text 是在for循环内初始化的,赋给text的值在循环退出时就丢失了。代码2会显示”Line9”。实际上,在声明一个变量时,只声明一个简单变量类型,并不会引起什么变化。只有在给变量赋值时,这个值才占用一块内存空间。
1万+

被折叠的 条评论
为什么被折叠?



