gpt4 book ai didi

c# - 将匿名泛型类型与多个泛型一起使用

转载 作者:太空宇宙 更新时间:2023-11-03 11:47:12 24 4
gpt4 key购买 nike

查看此内容后blog作者:Kirill Osenkov(How to create a generic List of anonymous types?)我正在尝试做一些更高级但有问题的事情。

编译以下代码:

    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 的类型时,我似乎无法让它推断出这一点。这可能吗?

最佳答案

没有。 C# 编译器不支持此类功能。您必须手动指定所有通用参数,或者不指定任何通用参数并依赖类型推断。

最接近的是以下内容

var anon = new { One = "1", Two = "2" };
var result = DoSomethingElse(anon,42);

public static T2 DoSomethingElse<T, T2>(T value, T2 otherValue)
where T2 : new()
{
return new T2();
}

关于c# - 将匿名泛型类型与多个泛型一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3111264/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com