【发布时间】:2013-07-19 17:22:55
【问题描述】:
假设我为具有姓名和出生日期作为属性的人创建了一个匿名类型:
var person = new{ Name = "Mike", BirthDate = new DateTime(1990, 9, 2) };
后来,决定添加一个返回人年龄的方法。
var person = new { Name = "Mike",
BirthDate = new DateTime(1990, 9, 2),
GetAge = new Func<int>(() => { return /* What? */; }) };
如何访问属性BirthDate 以便计算年龄?我尝试使用this,但它当然没有用。
【问题讨论】:
-
因为匿名类型属性是只读的,我认为这样做没有意义。您可以直接在
GetAge属性实现中使用new DateTime(1990, 9, 2),不会有任何区别。 -
据我所知,你不能。
-
@dpp 为它创建适当的类。匿名类型仅用于数据的简单和临时存储。对于其他一切,您应该创建新类型。
-
OT:确实应该有一种方法可以接受@JonSkeet 的评论作为正确答案。
-
这是一个很好的问题,但显然有很多方法可以通过使用其他方法来解决这个问题...@newStackExchangeInstance no
dynamic在这里不起作用。
标签: c# anonymous-types