我在我的项目函数中多次使用需要将泛型作为参数传递的函数。这些函数有不同的输入,但它们都需要一个 T 作为参数。
让我用一些代码解释我目前在做什么:
switch (tableName)
{
case "product":
foo<Entities.Product>(value);
break;
case "customer":
foo <Entities.Customer>(value);
break;
}
这就是我想要实现的目标:
foo(MyConverter(tableName), value);
在乞讨时虽然不是很优雅,但我认为我可以侥幸逃脱,但随着代码的增长,需要这种行为的函数越来越多,不仅仅是 Foo。
现在我有 foo2(value1, value2) foo3(value1, value2, value3) 等等。
我不太擅长代表,我知道必须有某种方法可以自动实现这一点,但我就是想不通。
有更好的想法吗?
谢谢。