Lambda表达式 - 参数不可知?

RSo*_*ort 1 c# lambda expression

我宣布这个类:

public class SimpleArea<T> where T: Control
{
    private T control;

    public SimpleArea(T control)
    {
        this.control = control;
    }

}
Run Code Online (Sandbox Code Playgroud)

在我的主程序中,我想做这样的事情:

var SimpleAreaPanel = SimpleArea<Panel>(p => { p.Height= 150; })
Run Code Online (Sandbox Code Playgroud)

问题是他无法定义智能感知"参数??? p"的"p"类型

我怎样才能完成这个指令?

Mar*_*ell 5

你的构造函数不接受lambda - 它需要一个T实例,所以a Panel.要么它一个Panel,要么写一个可以采用该表达式的constucor - 也许是一个Action<T>.

就个人而言,我怀疑你的意思是:

new Panel {Height = 150}
Run Code Online (Sandbox Code Playgroud)

这是一个对象初始化器,而不是lambda - 即

var SimpleAreaPanel = new SimpleArea<Panel>(
    new Panel { Height= 150 });
Run Code Online (Sandbox Code Playgroud)