私はコードの重複を避けるために汎用メソッドを書こうとしています。ジェネリックメソッドは、3つの異なるグリッドビュータイプのうちの1つを受け入れることができる必要がありますが、ジェネリックメソッドの開始時に以下のキャストを機能させることはできません。C#Generics - 異なる型を受け入れる
var grid;
if (typeof(T) == typeof(GridView))
{
grid = (GridView)gridView;
}
else if (typeof(T) != typeof(BandedGridView))
{
grid = (BandedGridView)gridView;
}
else if (typeof(T) != typeof(AdvBandedGridView))
{
grid = (AdvBandedGridView)gridView;
}
else return;
"グリッド"を3つのタイプのいずれかにキャストするにはどうすればよいですか?私はまだジェネリックスの考え方とコンセプトを理解しようとしています。
3つのタイプは同じインターフェースを持っていますか(言い換えればインターフェースではなくAPIの意味で)? –
あなたはvarを宣言することはできませんし、後でそれを初期化します。一つのステップで行う必要があります。ちょうどvar a = 100のように –
私は彼らがすべて同じインターフェースを守っているかわかりません。私は現在、それぞれ異なるタイプを受け入れる3つの別々のメソッドを持っていますが、各タイプのプロパティは同じです。すなわち、メソッドはパラメータタイプ – Josata