我已经宣布此类:
public class SimpleArea<T> where T: Control
{
private T control;
public SimpleArea(T control)
{
this.control = control;
}
}
在我的主程序上,我想执行以下操作:
var SimpleAreaPanel = SimpleArea<Panel>(p => { p.Height= 150; })
问题是他无法定义智能感知显示“ Parameter ??? p”的“ p”的类型。
我该如何完成此指示?
最佳答案
您的构造函数不需要lambda-它需要T
实例,所以需要Panel
。给它一个Panel
,或者编写一个可以接受该表达式的构造函数-可能是一个Action<T>
。
就我个人而言,我怀疑您的意思仅仅是:
new Panel {Height = 150}
这是一个对象初始值设定项,而不是lambda-即
var SimpleAreaPanel = new SimpleArea<Panel>(
new Panel { Height= 150 });
关于c# - Lambda表达式-参数未知吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6718732/