1

我的一个函数中有以下代码

goodsQuery = db.Goods.Select(g => new { g.name, g.description, g.image, g.price });

如果它已在方法中定义,我将使用var类型。但是当变量定义为类字段时我必须使用什么类型?

当然IEnumerable<Goods>不会顺利。尝试使用IEnumerable<object>但结果是一样的。

我应该为此创建一个新课程吗?

4

2 回答 2

4

您正在使用匿名类型。这只能存在于函数的范围内。如果您希望结果可用于属性,则需要为此创建一个真实的类。

您不能将字段、属性、事件或方法的返回类型声明为具有匿名类型。同样,您不能将方法、属性、构造函数或索引器的形式参数声明为具有匿名类型。要将匿名类型或包含匿名类型的集合作为参数传递给方法,可以将参数声明为类型对象。然而,这样做违背了强类型的目的。如果您必须存储查询结果或将它们传递到方法边界之外,请考虑使用普通的命名结构或类而不是匿名类型。

于 2013-01-08T13:58:35.027 回答
1

如果使用 C# 4,dynamic如果创建类不可行,您也可以使用...

但似乎类Good(奇怪的名字)在这里是一个更好的选择。

于 2013-01-08T14:01:13.780 回答