我是一个意大利人,抱歉我的英语不好!我想知道是否有办法使用方法通过引用或值随时传递参数。
例如,如果我想要这个方法:
public mehtod (ref int a)
{
//do some stuff
}
另一种方法
public method (int a)
{
//do the same stuff of method(ref int a)
}
有一种方法可以获得相同的结果,但是没有使用相同的主体创建两种不同的方法?我需要它,因为有时候我想要使用“方法”的副作用,有时候我想要a不被修改!
非常感谢你!
答案 0 :(得分:2)
您只需从第二个方法调用第一个方法:
public void method (ref int a)
{
//do some stuff
}
public void method(int a)
{
method(ref a); //do the same stuff of method(ref int a)
}
答案 1 :(得分:1)
如果返回类型为void
,您可以将其更改为返回修改后的值,而不是使用ref
。然后调用者可以忽略返回值或使用返回值,因为他们选择:
int Method(int foo) {
// ...
foo = ...
// ...
return foo;
}
使用:
Method(a);
Vs的
a = Method(a);
答案 2 :(得分:0)
static void callingMethod()
{
int a = 0;
method(a); // original a is not modified
// or
method(ref a); // a is modified
}
static void method(int a)
{
method(ref a);
}
static void method(ref int a)
{
// do stuff
}
答案 3 :(得分:0)
我不确定你为什么要这样做......但是有一种方法可以做到
public mehtod(ref int a,bool modify)
然后在其内部如果传递的修改为false则在内部声明一个新变量并仅分配该值并使用它 比如int b = a; 并根据更新ref变量的标志使用b进行处理,或者保留