3

以前も質問したのですが、よく分からなかったので回答が遅くなりました。

方法を返すメソッドがある場合、ObservableColletion<T>これを別のジェネリック メソッドで使用します。

だろう

method2<ObservableCollection<T>>(){} 

行く道になります。

Ado.NET Dataservices クエリの結果をすべてのサブスクライバーに渡す汎用の resultEventArgs を作成しようとしています。その中で、返される強く型付けされた EntityCollection を渡すことができないようにしたい [Ado.NET 1.5 生成]

そうObservableCollectionです、ado.netデータサービス全体の混乱を招きたくなかったので、私の質問は言葉で表現されています。

乾杯デイブ

4

1 に答える 1

4

場合によります; アイテムタイプまたはコレクションタイプのどちらを指定しますか? アイテムを指定したいだけなら、 はそのアイテムにTのみ関連します:

public ObservableCollection<T> SomeMethod<T>()
{
    var data = new ObservableCollection<T>();
    data.Add(default(T)); // or whatever
    return data;
}

次に、などを使用できますObservableCollection<Order> orders = SomeMethod<Order>()。コレクション型を指定する必要がある場合は、より一般的な型が必要になる場合があります...

public TList SomeMethod<TList, T>()
    where TList : class, IList<T>, new()
{
    var data = new TList();
    data.Add(default(T)); // or whatever
    return data;
}

ただし、それを呼び出すのはよりトリッキーです。リストが引数でない限り、型推論を行うことはできません。つまり、両方を指定する必要がTListありT、呼び出すときに...きれいではありません。

于 2009-06-21T14:24:40.943 に答える