【发布时间】:2010-10-28 18:01:06
【问题描述】:
我有一个带有以下签名的方法:
private PropertyInfo getPropertyForDBField(string dbField, out string prettyName)
在其中,我根据给定的dbField 找到关联的值prettyName。然后,我想查找名称为 prettyName 的所有属性(如果有),因此我尝试执行以下操作:
IEnumerable<PropertyInfo> matchingProperties =
getLocalProperties().Where(prop =>
prop.Name.Equals(prettyName)
);
但是,这会产生以下错误:
不能在匿名方法、lambda 表达式或查询表达式中使用 ref 或 out 参数“prettyName”
在我尝试在Where lambda 参数中使用prettyName 的方法中,prettyName 肯定已初始化。如果prettyName 无法初始化为有效值,则我return。我可以在这里做些什么让我在 lambda 表达式中使用 prettyName 吗?
编辑:如果重要的话,我正在使用 .NET 3.5。
【问题讨论】:
-
如何将您要放入 prettyName 的值存储到不同的变量中,以便您可以执行
prettyName = someval;然后在您的匿名函数中使用someval? -
如接受的答案所示,您在标题中写的不是您想要做的,请更改它。
标签: c# linq lambda out-parameters