C# 标准 .NET 库中是否存在内置的 Identity 恒等函数?
.NET 标准库内置恒等函数说明
直接可用的原生实现
.NET Core 2.0、.NET 5+、.NET Standard 2.1 及更高版本的标准库中,已经自带完全匹配需求的恒等函数:System.Linq.Enumerable.Identity<T>(T x)
该函数的逻辑就是输入任意类型参数后直接返回参数本身,无需额外封装。
旧版本兼容替代方案
如果你的运行环境是不支持上述方法的旧版本框架(如.NET Framework),可以使用以下两种通用的原生方法替代:
- 调用
System.Runtime.CompilerServices.RuntimeHelpers.GetObjectValue(object obj):该方法对引用类型会直接返回输入对象本身,对值类型返回原值的装箱实例,完全满足恒等函数的功能要求。 - 调用
System.Convert.ChangeType(object value, Type conversionType),调用时传入目标对象和对象自身的运行时类型即可,示例调用逻辑为Convert.ChangeType(输入对象, 输入对象.GetType()),返回结果与输入对象完全一致。
内容的提问来源于stack exchange,提问作者srm
相关产品推荐
相关产品推荐

