我知道我不能写这样的方法:
public var MyMethod() { return new{ Property1 = "test", Property2="test"}; }
否则我可以这样做:
public object MyMethod() { return new{ Property1 = "test", Property2="test"} }
但是我不想做第二种选择,因为如果这样做,我将不得不使用反射。
为什么我要这样做:
今天,我在aspx页面中有一个方法,该方法返回一个数据表作为结果,但我 无法更改它 ,我试图将此DataTable转换为具有我要使用的属性的Anonymous方法。我不想只创建一个类来做到这一点,因为我将需要多次执行同一查询,所以我认为创建一个返回匿名类型的方法将是一个很好的想法。
将其作为a 返回是从方法返回匿名类型System.Object的 唯一 方法。不幸的是,没有其他方法可以做到这一点,因为匿名类型是专门为防止以这种方式使用而设计的。
System.Object
您可以通过结合使用一些技巧来Object使自己接近。如果您对此解决方案感兴趣,请阅读无法从方法返回匿名类型?真?。
Object
免责声明: 即使我链接的文章确实显示了一种解决方法,但这并不意味着这样做是一个好主意。在创建常规类型更安全,更容易理解时,我强烈建议您不要使用这种方法。