问题描述
var A = new ContentStack();
在我的代码中,我正在执行以下操作,我想尝试简化,以便我可以将列表中的项目添加到类 A
中,而不是像下面这样逐行添加
A.Children.Add(new X());
A.Children.Add(new Y());
其中 X 和 Y 是我创建这个类的每个视图:
public class ContentStack : StackLayout
{
public ContentStack()
{
Spacing = 0;
}
public void AddRow(View view)
{
this.Children.Add(view);
}
}
所以现在我可以简化为:
A.AddRow(new X());
A.AddRow(new Y());
有没有一种方法可以通过某种扩展方法或其他方式进一步简化它,以便我可以使用以下方法实现相同的功能:
A.AddRows(new X(),new Y());
解决方法
public void AddRows(params View[] views)
{
foreach (var item in views)
this.Children.Add(item);
}
这有效:
A.AddRows(new X());
A.AddRows(new Y());
也是这样:
A.AddRows(new X(),new Y());