gpt4 book ai didi

c# - 有没有办法在匿名类型上调用模板化类?

转载 作者:行者123 更新时间:2023-12-03 19:33:33 25 4
gpt4 key购买 nike

这里有一些代码可以说明这个想法。

public class C<T> { }
public class X {
void M() {
var V = new { W = 1 };
var X = new C<V>(); // illegal
}
}

所以 V 是一个匿名类型的变量,我想用 V 作为其参数来实例化类 C。这需要一个类型参数,但我无法提供。

这个问题很相似,但答案对我的情况没有太大帮助:Why can't I instantiate a generic class inferring types from anonymous objects?

问题背后的问题是我正在尝试做 IEnumerable 可以做的事情。


应该说清楚:我真的不想通过操作 objectType 来做到这一点,因为你会失去强类型和 Intellisense 的好处。


对于任何感兴趣的人,需要此项目的描述如下:http://www.andl.org/2016/07/andl-net-making-progress/ .

最佳答案

如果您有工厂方法,则可以使用类型推断:

public class C<T>
{
public C(T t)
{
// ...
}
}

public static class Factory
{
public static C<T> Create<T>(T t)
{
return new C<T>(t);
}
}

public class Thing
{
void Foo()
{
var x = new { y = "z" };
//var thing = new C(x); - doesn't work, you need to specify the generic parameter
var thing = Factory.Create(x); // T is inferred here
}
}

关于c# - 有没有办法在匿名类型上调用模板化类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38736022/

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