次のコードは、私が何をしたいのかを示しています。つまり、anObjectを制約し、IInterfaceOneまたはIInterfaceTwoを使用してさまざまなメソッドのパラメータとして使用できるようにしたいと思います。メンバーをジェネリックスなしで2つのインターフェースを実装するものとして定義/制約できますか?
public interface IInterfaceOne { }
public interface IInterfaceTwo { }
public class Implementation : IInterfaceOne, IInterfaceTwo
{
}
public interface IInterfaceOneAndTwo : IInterfaceOne, IInterfaceTwo { }
public class UsingImplementation
{
IInterfaceOneAndTwo anObject = (IInterfaceOneAndTwo)(new Implementation()); //fails because Implementation doesnt acctually implement IInterfaceOneAndTwo
}
IInterfaceOneAndTwoは独自の権利でインタフェースであり、実装がそれを実装していないので、この例では、しかし、失敗します。
私がジェネリック薬を使用するのであれば、私はそれらを拘束することができますが、ジェネリック医薬品なしでこれを行う方法があれば疑問に思いますか?
anObject
がIInterfaceOneAndTwo
を使用せずにIInterfaceOne
とIInterfaceTwo
を、実施しなければならないと言うする方法はありますか?
悲しいことにC#はこれをサポートしていません。なぜなら、C#インターフェイスの動作にうまく適合しないからです。 – CodesInChaos