所以,我有一个类:如何使用泛型
internal class GridBox<T> : BoxBase where T : new()
{
public GridBox(Grid grid, GridBoxView view, MessageBoxIcon icon, string caption, ObservableCollection<T> dataSource, MessageBoxButton button)
: base(grid, icon, caption, button)
{
View = view;
DataSource = dataSource;
}
public GridBoxView View { get; set; }
public ObservableCollection<T> DataSource { get; set; }
}
我用这个GridBox
Class
这里:
public static T Show<T>(DependencyObject sender, MessageBoxIcon icon, string caption, ObservableCollection<T> dataSource, MessageBoxButton button) where T : IComparable<T>
{
Window window = Window.GetWindow(sender);
Grid grid = Extensions.FindChild<Grid>(window);
GridBoxView gridBox = new GridBoxView();
return gridBox.Show<T>(new GridBox<T>(grid, gridBox, icon, caption, dataSource, button));
}
我这里得到一个错误寿在new GridBox<T>
:
'T'必须是一个具有公共无参数构造函数的非抽象类型,以便在泛型类型或方法中将其用作参数'T'
那么,如果T来自public static T Show<T>
,我该如何使用new GridBox<T>
?
所有的答案都是正确的,但只能选择1作为答案,对不起。 – Krowi