所以我试图能够传递一个带有可变数量参数的 Func 。
就像是:
public object GetValue<T>(string name, Func<object> func) {
var result = func.DynamicInvoke();
}
当 func 的参数数量已知时,上述函数/签名效果很好。但是当您希望参数的数量在运行时之前未知时,它很快就会崩溃。
我想更改方法签名以允许以下场景,而不使用方法重载:
// No arguments
var result = GetValue("Bob", () => { return "Bob Smith"; });
// 1 argument
var result = GetValue("Joe", (i) => { return "Joe " + i.ToString(); });
// 2 arguments
var result = GetValue("Henry", (i,e) => {
return $"i: {i.ToString()}, e: {e.ToString()}";
});
现在不需要超过 2 个参数......但可能在未来。调用语法对我来说是最重要的一点。我宁愿不让来电者投射任何东西。
我已经查看了这个问题和答案,但它们似乎都需要一些我不想使用的调用语法。
任何想法如何实现?
相关分类