【问题标题】:What are the practical reasons to use the "out" keyword [duplicate]使用“out”关键字的实际原因是什么[重复]
【发布时间】:2017-09-27 15:13:15
【问题描述】:

我写了一个实用函数:

public static void SerializeErrorMessage(int ErrorCode, string ErrorMessage, out byte[] Buffer)
{
    object ErrorJson = new { ErrorCode, ErrorMessage };
    string Serialized = JsonConvert.SerializeObject(ErrorJson);     
    Buffer = Encoding.UTF8.GetBytes(Serialized);
}

我想知道为什么我应该/不应该这样写:

public static byte[] SerializeErrorMessage(int ErrorCode, string ErrorMessage)
{
    object ErrorJson = new { ErrorCode, ErrorMessage };
    string Serialized = JsonConvert.SerializeObject(ErrorJson);     
    byte[] Buffer = Encoding.UTF8.GetBytes(Serialized);
    return Buffer;
}

这只是个人喜好问题吗?第一个函数比第二个函数性能更好吗?

【问题讨论】:

  • 在那种情况下,我会说这是偏好。它通常被用作“返回”多个值的一种方式
  • 想想public static bool TrySerializeErrorMessage() 方法,看看out 关键字的用法;)。
  • 查看所有尝试解析方法TryParse

标签: c#


【解决方案1】:

当需要从一个函数返回多个值时使用 out 关键字,而不将这些值包装在一个对象中。

例如Integer.TryParse,既有返回值(解析成功则返回布尔值),以及解析成功时返回值的 out 参数。

在你的情况下,没有区别

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-16
    • 1970-01-01
    • 2012-09-17
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多