特定のオブジェクトが、私が作成した汎用パラメータを取るインターフェイスを実装しているかどうかを確認しようとしています。
public interface ICaseCopier<T> where T : ModelElement
{
T Case1 { get; set; }
T Case2 { get; set; }
void CopyCase(T caseToCopy, T copiedCase);
}
私のオブジェクトの1つは、次のようなインターフェースを実装しています:
public class ProcessLoad : ElectricalLoad, ICaseCopier<ProcessCase>
ProcessCase は ModelElement の子です。ジェネリックのさまざまなパラメーターでそのインターフェイスを使用する多くのオブジェクトがあるため、それらを1つずつチェックすることは問題外です。
私が試したのはこれです:
ICaseCopier<ModelElement> copier = this as ICaseCopier<ProcessCase>;
しかし、次のエラーが表示されます。
Cannot convert source type 'ICaseCopier<ProcessCase>' to target type 'ICaseCopier<ModelElement>'
ProcessCase は ModelElement にキャスト可能です。