tengo un método con la siguiente firma:C# - cómo pasar 'hacia fuera' de parámetros en la expresión lambda
private PropertyInfo getPropertyForDBField(string dbField, out string prettyName)
En ella, creo que el valor asociado prettyName
en base a la dada dbField
. entonces yo quiero encontrar todas las propiedades, si las hay, que tienen el nombre prettyName
, así que estoy tratando de hacer lo siguiente:
IEnumerable<PropertyInfo> matchingProperties =
getLocalProperties().Where(prop =>
prop.Name.Equals(prettyName)
);
Sin embargo, esto da el siguiente error:
Cannot use ref or out parameter 'prettyName' inside an anonymous method, lambda expression, or query expression
Por el punto en el método donde estoy tratando de usar prettyName
en el parámetro lambda Where
, prettyName
es definitivamente inicializado. I return
si prettyName
no se puede inicializar con un valor válido. ¿Hay algún truco que pueda hacer aquí para dejarme usar prettyName
en la expresión lambda?
Edit: Estoy usando .NET 3.5 si es importante.
¿Qué tal si almacenamos el valor que pondría a prettyName en una variable diferente para que pueda hacer 'prettyName = someval;' y luego usar 'someval' en su función anon? –