我想创造这样的东西:
Class.Method<OtherClass>(x => new Dictionary<string, string> { { nameof(x.Property), "Hello World!" } });
我希望方法无效,但不知怎的,我无法完成这项工作。我知道这个签名是
public static void Method<T>(Func<T, Dictionary<string, string>> func)
但我不想使用字典az a TResult。我想要的只是将字典作为输入并填充T类型的键。这有可能吗?
答案 0 :(得分:1)
从我可以收集的内容中,您尝试提供一个填充现有字典的键的函数。如果是这样的话,你可以这样做:
public static void Method<T>(Action<T, IDictionary<string, string>> mergeAction);
可以这样调用:
MyClass.Method<OtherClass>((input, dict) => { dict[nameof(input.Property)] = "hello world"; });
答案 1 :(得分:0)
其中Func<T, TResult>
应返回void的TResult
必须声明为Action<T>