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"类型
我怎样才能完成这个指令?
你的构造函数不接受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)