代码之家  ›  专栏  ›  技术社区  ›  DaveDev

为什么不能在创建匿名类型的方法之外使用它?

  •  1
  • DaveDev  · 技术社区  · 14 年前

    我知道如果我把它转换成一个命名类型,我可以用它做任何我想做的事情,但是如果我能保持方法调用之间的匿名性,它会使代码更加整洁。

    3 回复  |  直到 11 年前
        1
  •  1
  •   Roman    14 年前

    把你方法的签字看作是一份合同。你的方法是 “我保证会还给你一些包含以下字段的内容。” 如果从方法返回匿名对象,则没有协定。你只是说 “这里有一些数据,祝你好运!”

    如果C 4是一个选项,您可以使用 tuples 返回更任意的数据。

        2
  •  1
  •   M.Babcock    11 年前

    虽然应该避免,因为它不是很干净,你可以考虑 this 乔恩·斯凯特的黑客。但是,如果可能的话,应该避免。

        3
  •  -2
  •   Achilles    14 年前

    这是一个猜测…但我是如此“棒”我“肯定”我是对的…

    匿名类型实际上不是“匿名的”。表示未知类型的类是在运行时堆栈上方法调用的本地运行时生成的(因此是仅方法作用域)。从函数调用(弹出堆栈)返回时,将丢失该范围内的所有对象,包括使用该方法调用隐藏在堆栈上的匿名类。

    猜猜看…