有没有人曾试图将泛型用于GTK#小部件?
我正在尝试创建一个小工具,它包含一个组合框,旁边有两个按钮,一个用于编辑所选项目,另一个用于创建新项目。显然,如果项目的类型是通用的,这将是最有意义的,否则小部件将不是非常有用,或者我将不得不使它成为一个抽象小部件,然后创建大量的子类型,这不是很好,要么。
因此我想知道是否有人已经尝试过这个。据我所知,语言规范中没有任何内容可以阻止它。我想monodevelop中的UI设计师可能会嘲笑我,但我可以忍受,只要这样的小部件 功能齐全。
答案 0 :(得分:0)
是的,你可以。您只需要确保您的泛型类实现了具有您显示的属性的接口。
public partial class ExampleWidget<T> : Gtk.Bin where T: INote
{
private T model;
public ComboBoxItem (T model)
{
this.Build ();
this.model = model;
label1.Text = model.Description;
}
}
此外,你必须让设计师创建File generic,你必须停止使用设计器,因为它总是将类覆盖为非泛型。 所以设计你的Widget并使其成为通用的。