关键字out和ref的不同之处在于哪个方法负责初始化参数.
1> 如果一个方法的参数被标识为out,那么调用代码在调用该方法之前可以不初始化该参数,并且被调用方法不能直接读取参数的值,并且它必须在方法返回之前为该参数赋值.
2>如果一个方法的参数被标识为ref,那么调用代码在调用该方法之前必须初始化该参数.
例:
using System;
class App
...{
static void Main()
...{
int a; //不必初始化
SetVal(out a);
Console.WriteLine(a);
}
private static void SetVal(out int v)
...{
//int a = v; //不能直接读取参数的值
v = 100; //必须初始化
}
}
using System;
class App
...{
static void Main()
...{
int a=10; //必须初始化
SetVal(ref a);
Console.WriteLine(a);
}
private static void SetVal(ref int v)
...{
int a = v; //可以直接读取参数的值
v = 100;
}
}
7083

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



