私はできないと思います。
C#には、メソッドパラメタを使用するときにジェネリックメソッドを理解するためのメカニズムがありますが、同じメソッドの他の汎用引数からは理解できません。それは動作しません。
たぶん、あなたはあなたの署名を変更することができます。
private static ObservableCollection<K> LoadR<K>(.ObservableCollection<K> onC)
where K : IStoreElement, new()
{
//....
return onC;
}
使い方は次のようになります。私は良いことではない、と私ができるSE、それはあなたが探しているものではありません同意
static void TestLoad()
{
var result1 = LoadR(new ObservableCollection<Something>());
var result2 = LoadR(new DerivedClassFromObservableCollection<Something>());
}
。
しかし、C#がでない場合は、汎用引数から型を推測しようとします。
.....
aroudnそれは、特定のコレクションを使用することです他の方法。私はあなたがこれをさらに望んでいないのを見ることができます。
だから、あなたが行うことができます一つのことは、あなたが使用法のようなものになり、それが代わりにIEnumerableをを返すようです:あなたは、コレクション自体に派手なものをしたい場合にも良くないかもしれません
static void TestLoad()
{
var result1 = new ObservableCollection(LoadR<Something>());
var result1 = new DerivedClassFromObservableCollection(LoadR<Something>());
}
あなたがもうそれを所有していないからです。
....
私は非常に最初のオプションです。