Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#显示错误';代表';System.Func<&燃气轮机';不接受1个参数_C#_Asp.net Mvc_Lambda - Fatal编程技术网

C#显示错误';代表';System.Func<&燃气轮机';不接受1个参数

C#显示错误';代表';System.Func<&燃气轮机';不接受1个参数,c#,asp.net-mvc,lambda,C#,Asp.net Mvc,Lambda,我打电话: form = new FormFor<Project>() .Set(x => x.Name, "hi"); form=newformfor() .Set(x=>x.Name,“hi”); 其中Project有一个名为Name的字段,FormFor的代码为: public class FormFor<TEntity> where TEntity : class { FormCollection form

我打电话:

        form = new FormFor<Project>()
            .Set(x => x.Name, "hi");
form=newformfor()
.Set(x=>x.Name,“hi”);
其中Project有一个名为Name的字段,FormFor的代码为:

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;
    }
}
公共类表单,其中tenty:class
{
表格收集表格;
公共表格
{
form=新FormCollection();
}
集合的公共表单(表达式属性,字符串值)
{
Add(property.PropertyName(),value);
归还这个;
}
}

但它一直告诉我,
Delegate'System.Func'不接受1个参数,我不确定为什么。有人能帮我解释一下吗?

它正试图转换这个lambda表达式:

x => x.Name
转换为
表达式

让我们暂时忽略表达式树位-委托类型
Func
表示不带参数的委托,并返回一个
tenty
。您的lambda表达式
x=>x.Name
显然需要一个参数(
x
)。我猜你想要

Expression<Func<TEntity, string>>
表达式
或者类似的操作,但并不清楚您想做什么。

Func
是一个接受零参数的委托,返回一个类型为
tenty
的对象。您试图提供一个
x
,但不返回任何内容。

表达式类型“x=>x.Name”不是
表达式,而是
表达式。我想您应该更改Set方法的声明:

public FormFor<TEntity> Set<V>(Expression<Func<TEntity, V>> property, string value)
集合的公共表单(表达式属性,字符串值)