c# - 在函数中使用输出参数时,在函数中初始化它们是好习惯吗?

标签 c# .net out-parameters

我有一个函数,它使用 out 参数将多个值返回给调用者。我想在函数中初始化它们,但我不确定这是否是个坏主意,因为您不知道何时调用函数它会立即更改值。调用者可能会假设在函数返回后,如果它正在做的任何事情都不起作用,那么这些值将是它们在调用者中初始化的值。

我可以在函数中初始化吗?

例子:

public static void SomeFunction(int ixID, out string sSomething)
{
    sSomething = "";
    sSomething = something(ixID);

    if (sSomething = "")
    {
        somethingelse();
        sSomething = "bar"
    }
}

最佳答案

是的 - 对于输出参数,您必须在返回之前分配它。

Although variables passed as an out arguments need not be initialized prior to being passed, the calling method is required to assign a value before the method returns.

虽然您不需要在函数的最顶部将它们初始化为空值。当您知道这些值时,您可以分配这些值。在您的示例中,不需要第一行,因为您在第二行中分配给 out 参数。

关于c# - 在函数中使用输出参数时,在函数中初始化它们是好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2412242/

相关文章:

c# - lock 和 Thread.Interrupt 哪个更快?

c# - linq to excel 异常 IErrorInfo.GetDescription

c# - 用于单元测试 .NET 核心 MVC Controller 的模拟 HttpContext?

mysql - 我可以在 cfloop 中调用存储过程并在 Coldfusion 中输出动态输出参数吗?

c# - 为什么我没有服务器的访问权限?

c# - 从 Silverlight 重定向到另一个页面

c# - 在 C#/.NET 中记录对文件的方法调用的最佳方式?

c# - 将 Elvis 运算符与 string.Equals 结合使用

java - MyBatis注解调用Stored Procedure并获取Out Params

.net - 如何实现与 Dictionary.TryGetValue 相同的行为