C#的值传递和引用都怎么用?a

来源:百度知道 编辑:UC知道 时间:2024/06/07 18:10:58
JAVA里没有这种吗?
高手能不能给个不初始化的例子和初始化的例子看一下?

C#中有两种类型(Type),值类型(Value Type)如int,float等;引用类型(Reference Type)如string这样的类型;对于值类型,默认按值传递(即在方法中生成这个变量的一个拷贝进行处理,变量的原始值在方法返回后不变);引用类型,则默认按引用引用传递。如果要让值类型以引用方式传递,则要使用ref关键字,如:
class RefExample
{
static void Method(ref int i)
{
i = 44;
}
static void Main()
{
int val = 0;
Method(ref val);
// val 现在的值变为 44
}
}
使用ref时,变量必须先初始化,如果不想初始化,可以使用out关键字来代替ref,作用是一样的。

上面的例子中对val进行了初始化。在有的程序中,只想使用引用的传递方式从方法中返回一个值,如果用ref,需要初始化这个值,这显得有点不合理,这时可用out:
class OutExample
{
static void GetSomeMethod(out int i)
{
i = 44;
}
static void Main()
{
int val; // 这个val值不初始化也不会出错
GetSomeMethod(out val);
// val 现在的值为 44
}
}

JAVA中没有C#中的ref关键字...

具体使用方法是在参数前面加上ref
void test(ref int a,ref int b)
{
.......
}

同是在使用时
int a = 1;
int b = 1;
test(ref a,ref b);

request.getParameter("a&quo