以下两个方法有什么区别?
<pre>
static void Split(ArrayList source, ArrayList result1,
ArrayList result2)
{
if (source == null)
{
result1 = null;
result2 = null;
return;
}
result1.Add(null);
result2.Add(null);
}
static void Split2(ArrayList source, out ArrayList result1,
out ArrayList result2)
{
if (source == null)
{
result1 = null;
result2 = null;
return;
}
result1.Add(null);
result2.Add(null);
}
</pre>
想知道答案请看下文······
Split()与Split2()两个方法主体没有任何区别,只是方法Split2()的最后两个参数为out参数导致无法编译,编译器提示以下信息:
错 误 1 使用了未赋值的 out 参数“result1” F:\Documents and Settings\linhen\My Documents\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs 33 13 ConsoleApplication1
错 误 2 使用了未赋值的 out 参数“result2” F:\Documents and Settings\linhen\My Documents\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs 34 13 ConsoleApplication1
错 误 3 控制离开当前方法之前必须对 out 参数“result1”赋值 F:\Documents and Settings\linhen\My Documents\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs 23 21 ConsoleApplication1
错 误 4 控制离开当前方法之前必须对 out 参数“result2”赋值 F:\Documents and Settings\linhen\My Documents\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs 23 21 ConsoleApplication1
错误1、2是由于out 参数的值不会传递到 out 参数,所以必须在方法内部进行初始化。错误3、4则是由于在方法返回之前必须为 out 参数赋值。
<pre>
static void Split(ArrayList source, ArrayList result1,
ArrayList result2)
{
if (source == null)
{
result1 = null;
result2 = null;
return;
}
result1.Add(null);
result2.Add(null);
}
static void Split2(ArrayList source, out ArrayList result1,
out ArrayList result2)
{
if (source == null)
{
result1 = null;
result2 = null;
return;
}
result1.Add(null);
result2.Add(null);
}
</pre>
想知道答案请看下文······
Split()与Split2()两个方法主体没有任何区别,只是方法Split2()的最后两个参数为out参数导致无法编译,编译器提示以下信息:
错 误 1 使用了未赋值的 out 参数“result1” F:\Documents and Settings\linhen\My Documents\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs 33 13 ConsoleApplication1
错 误 2 使用了未赋值的 out 参数“result2” F:\Documents and Settings\linhen\My Documents\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs 34 13 ConsoleApplication1
错 误 3 控制离开当前方法之前必须对 out 参数“result1”赋值 F:\Documents and Settings\linhen\My Documents\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs 23 21 ConsoleApplication1
错 误 4 控制离开当前方法之前必须对 out 参数“result2”赋值 F:\Documents and Settings\linhen\My Documents\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs 23 21 ConsoleApplication1
错误1、2是由于out 参数的值不会传递到 out 参数,所以必须在方法内部进行初始化。错误3、4则是由于在方法返回之前必须为 out 参数赋值。