【问题标题】:Does C# have an identity function somewhere? [duplicate]C# 在某处有身份功能吗? [复制]
【发布时间】:2021-10-13 20:38:35
【问题描述】:

为了解决不寻常的情况,我需要一个执行此操作的函数:

object Identity(object x) { return x; }

它可以解决我无法更改的第三方库的问题。我真的不想为了介绍这个功能而创建一个新的 .NET DLL 文件。在任何标准的 .NET 库中是否有类似的东西?

我没有编写任何 .NET 代码。我正在从另一个包装器环境调用库。我所能做的就是发送命令来实例化对象或调用对象的方法/属性。没有地方我可以为自己编写这个函数。这个标识函数将帮助我避免调用环境的垃圾收集器认为可以释放对象。

【问题讨论】:

  • 您需要一个函数来返回您传递给它的一个参数...?
  • 您能描述一下您面临的问题吗?您要求的解决方案似乎微不足道。语言和库没有您描述的 独立 功能。它很容易编写(正如您在问题中发现的那样)。你写的那个有什么问题吗?另一种方法是说Func<object, object> Identity = x => x
  • 它将如何解决您的问题,这是什么问题?为什么不能自己写方法,或者使用匿名函数,lambda x => x
  • 我认为这不会阻止 GC 释放您的对象。你只需要一个持久对象来指向它
  • 这个问题正在meta讨论。

标签: c# identity


【解决方案1】:

根据this answer,F# FSharp.Core 库中有一个标识函数,它不是基类库的特定部分,但如果您能够导入现有代码但仍然不想要为这种情况编写自己的 DLL,它可能很有用。来自the F# source code

[<CompiledName("Identity")>]
let id x = x

【讨论】:

    猜你喜欢
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 2010-11-11
    • 2016-01-01
    • 2013-07-21
    相关资源
    最近更新 更多