一尘不染

有没有办法从方法返回匿名类型?

c#

我知道我不能写这样的方法:

public var MyMethod()
{
   return new{ Property1 = "test", Property2="test"};
}

否则我可以这样做:

public object MyMethod()
{
   return new{ Property1 = "test", Property2="test"}
}

但是我不想做第二种选择,因为如果这样做,我将不得不使用反射。


为什么我要这样做:

今天,我在aspx页面中有一个方法,该方法返回一个数据表作为结果,但我 无法更改它
,我试图将此DataTable转换为具有我要使用的属性的Anonymous方法。我不想只创建一个类来做到这一点,因为我将需要多次执行同一查询,所以我认为创建一个返回匿名类型的方法将是一个很好的想法。


阅读 220

收藏
2020-05-19

共1个答案

一尘不染

将其作为a 返回是从方法返回匿名类型System.Object唯一
方法。不幸的是,没有其他方法可以做到这一点,因为匿名类型是专门为防止以这种方式使用而设计的。

您可以通过结合使用一些技巧来Object使自己接近。如果您对此解决方案感兴趣,请阅读无法从方法返回匿名类型?真?

免责声明: 即使我链接的文章确实显示了一种解决方法,但这并不意味着这样做是一个好主意。在创建常规类型更安全,更容易理解时,我强烈建议您不要使用这种方法。

2020-05-19