我有一个像这样的功能:
public string MyFunction(int a, out int b)
{
var test = ""
b = 6;
return test;
}
然后在接收端:
int b = 0;
var testOutcome = MyFunction(3, b);
我想知道如何在这种情况下获得 b 的价值?
类似的东西:
var bOutcome = ....;
答案 0 :(得分:7)
您从方法中获取out
参数。请注意,您还需要在方法的参数签名中添加out
关键字:
int b = 0; // initialization is redundant
string testOutcome = MyFunction(3, out b);
// b is initialized now
虽然作为out参数传递的变量在传递之前不必初始化,但是在方法返回之前需要调用方法来赋值。
答案 1 :(得分:2)
如上所述,您的代码将无法编译,因为在使用接收out
参数的方法时,您应该在调用行中添加关键字out
。
您应该将主叫行改为
// No need to initialize b
// It is mandatory to initialize an out parameter for the called function
int b;
var testOutcome = MyFunction(3, out b);
然后你可以简单地检查b
的值if (b == 6)
关于如何使用out参数的一个非常常见的示例场景是Int32.TryParse方法