だから私は、例えば、このタイプの方法を持っています:
public ICollection<String> doSomething() { }
現在、メソッドの戻り値の型が ICollection 型であるかどうかを確認しようとしています。ただし、C# では、チェックを行うときにジェネリックを渡す必要があります。だから、「メソッドは ICollection です」ということはできません。
問題は、チェック時にジェネリックの型を制限したくないことです。Java ではワイルドカードを使用できましたが、C# では使用できません。Type.GetGenericParamterContraints() を使用して、その最初の結果を ICollection のジェネリック制約に貼り付けてチェックしようと考えましたが、それもうまくいきませんでした。誰にもアイデアはありますか?
isCollection(MethodInfo method){
Type[] ret = method.ReturnType.GetGenericParametersContraint();
Type a = ret[0];
return method.ReturnType is ICollection<a>;
}
編集:私が試したことを追加しました。