正如其他答案所指出的那样, 。但是,如果您坚持要这样做,那么就有一个令人讨厌的骇客,称为“以示例为例”,可以帮助您做到这一点。在这里和这里的几篇文章中都提到了该技??术。
public void FuncB()
{
var example = new { Id = 0, Name = string.Empty };
var obj = CastByExample(FuncA(), example);
Console.WriteLine(obj.Name);
}
private object FuncA()
{
var a = from e in DB.Entities
where e.Id == 1
select new { Id = e.Id, Name = e.Name };
return a.FirstOrDefault();
}
private T CastByExample<T>(object target, T example)
{
return (T)target;
}
(尽管其中一篇文章的作者说他也不想与之联系,但我不能为这种黑客行为而赞誉。他的名字可能很熟悉。)