在具有返回值的函数中使用out参数

时间:2014-01-09 11:11:35

标签: c#

我有一个像这样的功能:

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 = ....; 

2 个答案:

答案 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方法