c# - 编写一个通用方法来替换一系列遗留 API 方法

标签 c# generics

我正在使用我无法更改其代码的遗留 API 编写代码。支持的数据类型(int、double、bool、string、APIObject)有一系列方法可以在 API 中执行操作。它们采用与方法名称中指示的数据类型相同的参数。示例用法如下所示

GetIntExp(5)
GetStringExp("Hello")
GetDoubleExp(1.2)
GetDateExp(DateTime.Now)
GetAPIObjectExp(myObject)

返回类型分别为IntExp、StringExp、DoubleExp、DateExp和ObjectExp。所有返回类型都继承自一个类(有趣的是它是一个通用类型)StaticOperator<T>其中 T 是数据类型。

是否可以在我的代码库中编写一个通用方法,根据传入的数据类型将调用重定向到合适的 API 方法?

最佳答案

在我看来你根本不需要通用方法,只需要为每个支持的参数类型包装方法:

public IntExp GetExpression(int value)
{
    return GetIntExp(value);
}

public StringExp GetExpression(string value)
{
    return GetStringExp(value);
}

等等(假设您的目标是对所有获取表达式的方法使用相同的名称)。

关于c# - 编写一个通用方法来替换一系列遗留 API 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24485507/

相关文章:

c# - 我们如何从矩阵中获取旋转 Angular ?

c# - 具有空访问器的属性

c# - Serilog ThreadId 始终输出为 1

Java:如何在接口(interface)层次结构中返回声明的类型?

子类中的 Java 泛型和有界参数

Java 泛型和数字类型

c# - 正则表达式检查验证字符串是否有 0 个或多个数值和其他项目

c# - 获取文件夹中的下一个文件

java - 如何将枚举作为泛型参数传递

Java 11 功能流程在方法调用上推断出错误的类型