C#的值传递和引用都怎么用?a
答案:3 悬赏:80 手机版
解决时间 2021-03-21 09:43
- 提问者网友:疯子也有疯子的情调
- 2021-03-20 11:27
C#的值传递和引用都怎么用?a
最佳答案
- 五星知识达人网友:等灯
- 2021-03-20 12:22
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
}
}
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
}
}
全部回答
- 1楼网友:春色三分
- 2021-03-20 13:34
request.getParameter("a");
- 2楼网友:零点过十分
- 2021-03-20 13:13
JAVA中没有C#中的ref关键字...
具体使用方法是在参数前面加上ref
void test(ref int a,ref int b)
{
.......
}
同是在使用时
int a = 1;
int b = 1;
test(ref a,ref b);
具体使用方法是在参数前面加上ref
void test(ref int a,ref int b)
{
.......
}
同是在使用时
int a = 1;
int b = 1;
test(ref a,ref b);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯