Erreur d'affichage C # 'Delegate' System.Func & lt; ... & gt; ' ne prend pas 1 arguments
Je suis d'appel:
form = new FormFor<Project>()
.Set(x => x.Name, "hi");
où le Projet a un champ appelé Nom et FormFor code est:
public class FormFor<TEntity> where TEntity : class
{
FormCollection form;
public FormFor()
{
form = new FormCollection();
}
public FormFor<TEntity> Set(Expression<Func<TEntity>> property, string value)
{
form.Add(property.PropertyName(), value);
return this;
}
}
mais il continue à me dire Delegate 'System.Func<ProjectSupport.Core.Domain.Project>' does not take 1 arguments
et je ne suis pas sûr pourquoi. Quelqu'un pourrait jeter quelque lumière sur ce pour moi?
source d'informationauteur Harold
Vous devez vous connecter pour publier un commentaire.
C'est d'essayer de convertir cette expression lambda:
dans un
Expression<Func<TEntity>>
.Ignorons l'arborescence d'expression peu pour le moment - le type de délégué
Func<TEntity>
représente un délégué qui ne prend pas d'argument, et renvoie unTEntity
. Votre expression lambdax => x.Name
clairement est attend un paramètre (x
). Je soupçonne que vous voulezou quelque chose de similaire, mais ce n'est pas vraiment clair ce que vous essayez de faire.
Type de l'expression "x => x.Nom" n'est pas
Expression<Func<TEntity>>
maisExpression<Func<TEntity, string>>
. Je suppose que, vous devez modifier la déclaration de la méthode de Jeu:Func<TEntity>
est un délégué qui prend zéro des paramètres et retourne un objet de typeTEntity
. Vous essayez de fournir unx
et renvoie rien.