ref类型参数侧重修改,out类型总参书侧重输出.ref在传入值之前必须先初始化,而out必须在函数内、函数结束之前,几传出值之前初始化。
protected void Page_Load(object sender, EventArgs e)
{
//调用前初始化
int indexRef = 1;
TestRef(ref indexRef);
//不需初始化
int indexOut;
TestOut(out indexOut);
Response.Write("Ref: " + indexRef.ToString() + "<br>");
Response.Write("Out: " + indexOut.ToString() + "<br>");
Response.End();
}

private void TestRef(ref int index)
{ ///不需要初始化
for(int i = 0; i < 10; i++)
{
index += index;
}
}

private void TestOut(out int index)
{ ///初始化
index = 1;
for(int i = 0; i < 10; i++)
{
index += index;
}
}
protected void Page_Load(object sender, EventArgs e)
{
//调用前初始化
int indexRef = 1;
TestRef(ref indexRef);
//不需初始化
int indexOut;
TestOut(out indexOut);
Response.Write("Ref: " + indexRef.ToString() + "<br>");
Response.Write("Out: " + indexOut.ToString() + "<br>");
Response.End();
}
private void TestRef(ref int index)
{ ///不需要初始化
for(int i = 0; i < 10; i++)
{
index += index;
}
}
private void TestOut(out int index)
{ ///初始化
index = 1;
for(int i = 0; i < 10; i++)
{
index += index;
}
}


浙公网安备 33010602011771号