C# - 带有 linq 参数的泛型方法

本文关键字:泛型方法 参数 linq 带有 | 更新日期: 2023-09-27 18:31:54

我正在考虑创建这样的东西:

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 类型的键。这可能吗?

C# - 带有 linq 参数的泛型方法

据我所知,您正在尝试提供一个为现有字典填充键的函数。如果是这种情况,您可以执行以下操作:

public static void Method<T>(Action<T, IDictionary<string, string>> mergeAction);

这可以这样调用:

MyClass.Method<OtherClass>((input, dict) => { dict[nameof(input.Property)] = "hello world"; });

TResult应该返回 void 的Func<T, TResult>必须声明为Action<T>