【问题标题】:What does return (Object) null mean in c#?c# 中的 return (Object) null 是什么意思?
【发布时间】:2012-10-13 04:41:26
【问题描述】:

C# 新手,我正在查看一些具有以下返回语句的代码:

return (Object) null

这在 C# 中是什么意思,会返回什么?

谢谢

【问题讨论】:

  • 这可能毫无意义。你是通过什么方法找到这条线的?
  • 恕我直言,这与return null;...
  • @Mr_Green:处理什么?没有什么可处理的!
  • 这是否意味着有人喜欢编写令人困惑且不可读的代码? :)
  • @Relax_Im_A_Quant “因为它是非常机密的代码” - 是的,但是使用发明的不相关类型(CustomerOrderPerson 都很好)组合一个小样本通常很好无辜的类型名称),它显示了使用/场景,而不显示你的真实代码

标签: c# return


【解决方案1】:

我能想到的唯一需要这样做的地方是编译器无法推断返回类型的匿名方法。

例如,

var boxedThings = strings.Select(s =>
{
    int i;
    if (int.TryParse(s, out i))
        return i;
    double d;
    if (double.TryParse(s, out d))
        return d;
    return (object)null;
});

没有(object) 就无法编译。

【讨论】:

  • 哦,不错;从返回类型推断泛型类型 - 我没有想到那个
【解决方案2】:

绝对等于return null

【讨论】:

  • 嗯,不是 绝对 相等(我可以想到很多地方 return null; 可以工作,而 return (Object) null; 不能编译) - 但语义上,是的——它们的意思是一样的
  • 谢谢基里尔 - 如果可能的话,你能解释一下以这种方式返回 null 的好处吗?
  • 我能想到 return null 不起作用和 return (object)null 起作用的地方,但它们是相当愚蠢的地方。
  • @Relax_Im_A_Quant 没有
  • @Relax_Im_A_Quant,使用 return (Object)null 没有可能的好处;我认为这是一个错误。
【解决方案3】:

您正在投射一个具有空值的对象。

【讨论】:

    猜你喜欢
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 2018-03-19
    • 2017-01-22
    • 2017-03-02
    • 2022-01-09
    • 2011-08-22
    • 1970-01-01
    相关资源
    最近更新 更多