【发布时间】:2023-03-24 17:40:01
【问题描述】:
在查看了 Kirill Osenkov 的 blog(如何创建匿名类型的通用列表?)之后,我正在尝试做一些更高级的事情并遇到问题。
以下代码编译:
var anon = new { One = "1", Two = "2" };
var result = DoSomething(anon);
public static T DoSomething<T>(T value)
{
return value;
}
但是如果我尝试添加一个额外的泛型类型,我将无法构建它:
var anon = new { One = "1", Two = "2" };
var result = DoSomethingElse<int>(anon);
public static T2 DoSomethingElse<T, T2>(T value)
where T2 : new()
{
return new T2();
}
由于我无法指定 T 是 typeof(anon),因此当给定 T2 的类型时,我似乎无法推断出这一点。这可能吗?
【问题讨论】:
-
您打算如何在代码中使用
T value?您也许可以只使用object。
标签: c# generics types anonymous-types