public void Test() { TestInterface duck = DuckTyping.Implement <TestInterface> (new TestClass()); TestInterface same = DuckTyping.Implement <TestInterface> (duck); TestInterface2 duck2 = DuckTyping.Implement <TestInterface2>(same); Assert.AreSame(duck, same); int value; duck.Method(33, out value); Assert.AreEqual(33, value); Assert.AreEqual(42, duck.Method(40)); Assert.AreEqual(22, duck.Prop); duck.Event += duck_Event; duck.CallEvent(); Assert.AreEqual(55, eventValue); duck2.I2Method(33, out value); Assert.AreEqual(33, value); Assert.AreEqual(42, duck2.Method(40)); }
public void GenericInterfaceTest() { GenericClass <int> o = new GenericClass <int>(); GenericInterface <int> duck = DuckTyping.Implement <GenericInterface <int> > (o); TestInterface2 duck2 = DuckTyping.Implement <TestInterface2> (o); Assert.AreEqual(40, duck.Method(40)); Assert.AreEqual(40, duck2.Method(40)); int value; duck2.I2Method(33, out value); Assert.AreEqual(35, value); }
public int doit(TestInterface ti, TestInterface2 ti2, TestInterface3 ti3) { return(ti.overrideme() * 2 + ti2.overrideme2() + ti3.overrideme3()); }
public TestClass4(TestInterface2 testInterface2) { }
public TestInterface1Impl3(TestInterface2 ti2) { obj = ti2; }