1个回答
推荐于2017-06-12
展开全部
1、out必须在函数体内初始化,在外面初始化没意义。也就是说,out型的参数在函数体内不能得到外面传进来的初始值。
2、ref必段在函数体外初始化。
3、两都在函数体的任何修改都将影响到外面。例:using System;namespace ConsoleApplication1
{
class C
{
public static void reffun(ref string str)
{
str += " fun";
} public static void outfun(out string str)
{
str = "test"; //必须在函数体内初始
str += " fun";
}
} class Class1
{
[STAThread]
static void Main(string[] args)
{
string test1 = "test";
string test2; //没有初始
C.reffun( ref test1 ); //正确
C.reffun( ref test2 ); //错误,没有赋值使用了test2
C.outfun( out test1 ); //正确,但值test传进去
C.outfun( out test2 ); //正确 Console.Read();
}
}
}
2、ref必段在函数体外初始化。
3、两都在函数体的任何修改都将影响到外面。例:using System;namespace ConsoleApplication1
{
class C
{
public static void reffun(ref string str)
{
str += " fun";
} public static void outfun(out string str)
{
str = "test"; //必须在函数体内初始
str += " fun";
}
} class Class1
{
[STAThread]
static void Main(string[] args)
{
string test1 = "test";
string test2; //没有初始
C.reffun( ref test1 ); //正确
C.reffun( ref test2 ); //错误,没有赋值使用了test2
C.outfun( out test1 ); //正确,但值test传进去
C.outfun( out test2 ); //正确 Console.Read();
}
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询