私は2つのジェネリックスをとる関数を持っています<C, M>
。私はtypeof(C) != typeof(M)
を強制したいと思います、これは可能ですか?ジェネリック型の型が同じでないようにしますか?ジェネリックは指定された型のサブタイプにしかなりませんか?
私はMSDN page for type constraintsを読んでおり、「肯定」(where C: <class>|<interface>|<generic>
)の場合のみ拘束できますが、否定の場合(where C: !<class>|!<interface>|<!<generic>
)は拘束できません。
私のもう一つの解決策は、ジェネリック型を特定の型のサブクラスに強制することですが、その型自体は強制しないでください。私はこれが可能であるとは思わない。
Jon Skeetが話しました。 – KDecker