gpt4 book ai didi

c# - 无法将匿名类型传递给泛型构造函数

转载 作者:行者123 更新时间:2023-11-30 20:45:39 26 4
gpt4 key购买 nike

<分区>

假设我有以下泛型类:

public class Control<TItem>
{
public Control(TItem item)
{
}
}

当我尝试将匿名类型的对象传递给构造函数时,编译失败:

var objectOfAnonymousType = new { Foo = "bar" };

// cannot compile:
var control1 = new Control(objectOfAnonymousType);

但是,如果我不是通过构造函数而是通过类之外的通用方法来执行此操作,它似乎可以工作:

// can compile:
var control2 = CreateControl(objectOfAnonymousType);

使用的工厂方法:

static Control<TItem> CreateControl<TItem>(TItem item)
{
return new Control<TItem>(item);
}

我无法理解此限制背后的原因。谁能解释一下?

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