您的位置:首页 > 编程语言 > C#

C#中方法中 ref 和 out的使用

2016-12-03 10:45 323 查看
案例1:

staticvoidMain()
{
int[]ary={12,13,103,10003};
intnumLargerThan10,numLargerThan100,numLargerThan1000;
Proc(ary,outnumLargerThan10,outnumLargerThan100,outnumLargerThan1000);
Console.WriteLine("有{0}个数大于10,有{1}个数大于100,有{2}个数大于1000",numLargerThan10,numLargerThan100,numLargerThan1000);
Console.Read();
}

staticvoidProc(int[]ary,outintnumLargerThan10,outintnumLargerThan100,outintnumLargerThan1000)
{
numLargerThan10=0;
numLargerThan100=0;
numLargerThan1000=0;
foreach(varainary)
{
if(a>1000)
numLargerThan1000++;
elseif(a>100)
numLargerThan100++;
elseif(a>10)
numLargerThan10++;
}
}

输出结果:
有2个数大于10,有1个数大于100,有1个数大于1000


案例2:

classProgram
{
//使用out后必须对变量赋值
publicvoidTestOut(outintx,outinty)
{
x=1;
y=2;
}
//此时传进来的值分别为x1:10,y1:11,输出之后的x1的值为2

publicvoidTestRef(refintx,refinty)
{
//引用剪剪那句话传进来的是猪,出来的可能是头牛(很精辟!)
x=2;

}
staticvoidMain(string[]args)
{
intx;
inty;
ProgramP1=newProgram();
P1.TestOut(outx,outy);
Console.WriteLine("x={0},y={1}",x,y);
//在使用之前ref必须对变量赋值
intx1=10;
intY1=11;
P1.TestRef(refx1,refY1);
Console.WriteLine("x1={0},y1={1}",x1,Y1);
}
}

输出结果:

x=1,y=2
x1=2,y1=11


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: