私が質問に答えようとしたとき:
ServiceクラスのTClientジェネリック型を取り除くことは可能ですか?
この種のコンパイルできない構文を設計したことがないという奇妙な使用法を見つけました。以下は、私が遭遇したことを表しています。
interface IGeneric<T> {
}
partial class SomeClass {
// won't compile
public static void SomeMethod<U>(Action<T> d) where T: IGeneric<U> {
}
}
そして、たとえ次のように宣言されたとしても:
class Concrete: IGeneric<object> {
}
partial class SomeClass {
public static void SomeMethod<U>(Action<IGeneric<U>> d) { // compiles
}
}
次のコードをコンパイル可能にしません。
var d=default(Action<Concrete>);
SomeClass.SomeMethod(d); // won't compile
両方の型パラメーターが関係していなくても機能する構文を認識していません。
だから私はこの種の逆型推論の構文があるのだろうか?または回避策?