オプションのジェネリック型を使用してジェネリック メソッドを作成するにはどうすればよいですか? これは私が今持っているもので、うまくいきます
public GridViewColumn<T> Column<D>(String HeaderText, D decorator) where D: IColumnDecorator, new()
{
GridViewColumn<T> column = new GridViewColumn<T>();
column.HeaderText = HeaderText;
column.Decorator = new D();
return column;
}
ご覧のとおり、Column() メソッド内で型 D (IColumnDecorator を実装) をインスタンス化する必要があります。
問題は、タイプ「D」がオプションであることです。Null の場合、私が持っているデフォルトの ColumnDecorator を明示的に使用したいと思います。何かのようなもの
public GridViewColumn<T> Column<D>(String HeaderText, D decorator) where D: IColumnDecorator, new()
{
GridViewColumn<T> column = new GridViewColumn<T>();
column.HeaderText = HeaderText;
if(decorator ==null)
{
column.Decorator = new DefaultColumnDecorator();
}
else{
column.Decorator = new D();
}
return column;
}
助けてください。ありがとう!
[編集]。
カスタム IColumnDecorator 実装がある場合に、かみそり MVC で使用する方法は次のとおりです。
@Model.[IEnumerable].Grid(grid=>{
..
...
grid.columns(
grid.Column<MyOwnColumnDecorator>("FirstColumn")
)
});
何も持っておらず、デフォルトを使用したい場合は、次のようなことができるようにしたい
@Model.[IEnumerable].Grid(grid=>{
..
...
grid.columns(
grid.Column("FirstColumn",null) or simply grid.Column("FirstColumn");
)
});