4

一般的なパラメーターをインターフェイスにキャストする際に助けが必要です。

次のようなコードを事前に作成しました。

public interface InterFoo<T> {...}
public InterFoo<T> specialFoo<T>() where T : InterFoo<T> {...}
public InterFoo<T> regularFoo<T>() {...}

そして、私はこのようなものを実装したい

public InterFoo<T> adaptiveFoo<T>()
{
    if (T is InterFoo<T>)
        return specialFoo<T as InterFoo>();
    return regularFoo<T>();
}

この時点で解決策が見つからないので、何か役に立ちます、ありがとう。

編集: もともと関数は int を返していましたが、コードの意図した目的と互換性のないより単純なソリューションがあり、関数はジェネリック型を要求するように変更されました。

4

1 に答える 1