static private Random random = new Random(); override public object runOneIteration() { int number = random.Next(5); Cronometro cronometro = new Cronometro(); object value; var obj; if (number == 0) { obj = new Derived0(); } else if (number == 1) { obj = new Derived1(); } else if (number == 2) { obj = new Derived2(); } else if (number == 3) { obj = new Derived3(); } else { obj = new Derived4(); } cronometro.start(); for (int i = 0; i < 1000; i++) { value = obj.m(); } cronometro.stop(); this.microSeconds = this.microSeconds + cronometro.getMicroSeconds(); return(value); }
static int Main () { Derived1 d1 = new Derived1 (); Derived2 d2 = new Derived2 (); Base b1 = d1; Base b2 = d2; if (d1.Turn () != 4) return 1; if (((IVehicle)d1).Turn () != 4) return 2; if (((IVehicle)d2).Turn () != 7) return 3; if (b2.Turn () != 8) return 4; if (((IVehicle)b2).Turn () != 7) return 5; //Console.WriteLine ("TEST {0}", ((IVehicle)b2).Turn ()); return 0; }
public static int Main() { Derived1 d1 = new Derived1(); Derived1 x = d1.Method(); Derived2 d2 = new Derived2(); Derived2 y = d2.Method(); return 0; }
public void TestCodeGeneration() { using (new DerivedFromSecondaryBaseInDependency()) { } using (var der2 = new Derived2()) using (der2.LocalTypedefSpecialization) { } Assert.That(typeof(Derived2).Assembly.GetTypes().Any(t => t.FullName.Contains("Std.Vector")), Is.True); }
public static void Run() { Base test = new Base(); test.Call(); Base test2 = new Derived(); test2.Call(); Derived test3 = new Derived(); test3.Call(); Base test4 = new Derived2(); test4.Call(); Base test5 = new Derived2(); ((Derived2)test5).Call(); Derived2 test6 = new Derived2(); test6.Call(); Derived2 test7 = new Derived2(); ((Base)test7).Call(); Derived test8 = new Derived(); ((Base)test8).Call(); }
static void Main(string[] args) { Base2 b = new Base2(); b.Execute(); b = new Derived2(); b.Execute(); }
public static void Main() { Derived1 <int> derv = new Derived1 <int>(); Derived2 <double> derv2 = new Derived2 <double>(); Derived2 <double> derv3 = new Derived2 <double>(); Console.ReadKey(); }
public static int Test () { int numIterations = 4096000; var instance = new Derived2(); I = 0; for (var i = 0; i < numIterations; i++) instance.Method(); return I; }
static void Main() { Base x = new Derived(); x.Foo += (sender, e) => { }; x.Bar(); Base x2 = new Derived2(); x2.Foo += (sender, e) => { }; x2.Bar(); }
public static int Main() { Derived1 d1 = new Derived1(); Derived1 x = d1.Method(); Console.WriteLine(x.GetType()); // outputs Derived1 Derived2 d2 = new Derived2(); Derived2 y = d2.Method(); Console.WriteLine(y.GetType()); // outputs Derived2 }
public static Base Create(bool condition) { if (condition) { return(Derived1.Create(1, "TEST")); } else { return(Derived2.Create(1, DateTime.Now)); } }
static void Main(string[] args) { var derived1 = new Derived1(); derived1.CommonWork(); var derived2 = new Derived2(); derived2.CommonWork(); Console.Read(); }
public static int Test() { int numIterations = 4096000; var instance = new Derived2(); I = 0; for (var i = 0; i < numIterations; i++) { instance.Method(); } return(I); }
public static void Main() { Derived1 d1 = new Derived1(); d1.Prop = 7; Console.WriteLine(d1); Base1 b1 = new Base1(); Console.WriteLine(b1); Derived2 d2 = new Derived2(); Base2 b2 = new Base2(); d2.SetTheDude(77); Console.WriteLine(d2.GetTheDude()); }
public static void Main() { Derived2 d2 = new Derived2(); Base @base = d2; Derived1 d1 = d2; @base.Print(); @base.PrintA(); @base.PrintB(); d1.Print(); d1.PrintA(); d1.PrintB(); }
static void Main() { Base baseOb = new Base(); Derived1 dOb1 = new Derived1(); Derived2 dOb2 = new Derived2(); Base baseRef; // a base class reference baseRef = baseOb; baseRef.Who(); baseRef = dOb1; baseRef.Who(); baseRef = dOb2; baseRef.Who(); }
public static void Main() { Base baseOb = new Base(); Derived1 dOb1 = new Derived1(); Derived2 dOb2 = new Derived2(); Base baseRef; // Ссылка на базовый класс. baseRef = baseOb; baseRef.who(); baseRef = dOb1; baseRef.who(); baseRef = dOb2; baseRef.who(); // Вызывает метод who() класса Base. }
public void TestNonRenamedMethod() { using (var derived = new Derived()) { var parent = derived.Parent; derived.parent(0); } using (var derived2 = new Derived2()) { var template = derived2.Template; template.Field = 5; Assert.That(template.Field, Is.EqualTo(5)); } }
public static void Main() { Derived1 d1 = new Derived1(); Derived2 d2 = new Derived2(); Base b2 = d2; var sb = new StringBuilder(); sb.AppendLine("d1.Method() = " + d1.Method()); sb.AppendLine("d1.Property = " + d1.Property); sb.AppendLine("d2.Method() = " + d2.Method()); sb.AppendLine("d2.Property = " + d2.Property); sb.AppendLine("b2.Method() = " + b2.Method()); sb.AppendLine("b2.Property = " + b2.Property); Console.WriteLine(sb.ToString()); }
public static void Main() { Derived2 d2 = new Derived2(); Base @base = d2; Derived1 d1 =d2; @base.Print(); @base.PrintA(); @base.PrintB(); d1.Print(); d1.PrintA(); d1.PrintB(); }
static void Main() { int i = 0; Base b; if (i == 0) { b = new Derived1(); } else { b = new Derived2(); } b.SomeVirtualMethod(); }
static void Main(string[] args) { //... Derived obj = new Derived(); int some = obj.Prop; //expected Base b = (Base)obj; //obj.Prop = 10; Compilation error Console.WriteLine(obj.Prop); Derived2 obj2 = new Derived2(); obj2.Prop = 10; Console.WriteLine(obj2.Prop); Console.ReadKey(); }
public void HeterogeneousTest() { var heterogeneousSchema = @" [ ""string"", ""null"", { ""type"" : ""record"", ""name"" : ""Dervied2"", ""fields"" : [ { ""name"" : ""A"", ""type"" : ""string""}, { ""name"" : ""C"", ""type"" : ""double""} ] }, ] "; var schema = Schema.Parse(heterogeneousSchema); var derived2write = new Derived2() { A = "derived2", C = 3.14 }; // union types (except for [null, type]) need to be manually registered var unionSchema = schema as UnionSchema; var cache = new ClassCache(); cache.LoadClassCache(typeof(Derived2), unionSchema[2]); var writer = new ReflectWriter <object>(schema, cache); var reader = new ReflectReader <object>(schema, schema, cache); using (var stream = new MemoryStream(256)) { var encoder = new BinaryEncoder(stream); writer.Write(derived2write, encoder); writer.Write("string value", encoder); writer.Write(null, encoder); stream.Seek(0, SeekOrigin.Begin); var decoder = new BinaryDecoder(stream); var derived2read = (Derived2)reader.Read(decoder); var stringRead = (string)reader.Read(decoder); var nullRead = reader.Read(decoder); Assert.AreEqual(derived2read.A, derived2write.A); Assert.AreEqual(derived2read.C, derived2write.C); Assert.AreEqual(stringRead, "string value"); Assert.IsNull(nullRead); } }
public static void Main() { BaseClass baseOb = new BaseClass(); Derived1 dOb1 = new Derived1(); Derived2 dOb2 = new Derived2(); BaseClass baseRef; // a base-class reference baseRef = baseOb; baseRef.who(); baseRef = dOb1; baseRef.who(); baseRef = dOb2; baseRef.who(); }
public static void Run() { C1 c1 = new C1(); if (new Derived1 <C1>().As(c1) != c1) { throw new Exception(); } C2 c2 = new C2(); if (new Derived1 <C2>().AsToo(c2) != c2) { throw new Exception(); } // Also test the stability of the vtables. Base2 <string> b1 = new Derived2 <string>(); if (b1.Method1() != "Derived2.Method1") { throw new Exception(); } Base2 <object> b2 = new Derived2 <object>(); if (b2.Method2() != "Derived2.Method2") { throw new Exception(); } if (TestMethod1FromSharedCode(b2) != "Derived2.Method1") { throw new Exception(); } if (TestMethod1FromSharedCode(b1) != "Derived2.Method1") { throw new Exception(); } if (TestMethod2FromSharedCode(b2) != "Derived2.Method2") { throw new Exception(); } if (TestMethod2FromSharedCode(b1) != "Derived2.Method2") { throw new Exception(); } }
static void Main() { Base b; b = new Derived1(); if (b is Derived1) { Console.WriteLine("b = new Derived1();"); } b = new Derived2(); if (b is Derived1) { Console.WriteLine("b = new Derived2"); } }
static void Main(string[] args) { Base obj; //it is just a declaring if (true) { obj = new Derived1(); obj.m = (obj as Derived1).ParticularMethod; } else { obj = new Derived2(); obj.m = (obj as Derived2).ParticularMethod; } Console.WriteLine(obj.m()); //"Particular method of derived 1" Console.ReadKey(); }
static void Main() { Base b; Derived1 d; b = new Derived1(); d = b as Derived1; if (d != null) { Console.WriteLine("b = new Derived1();"); } b = new Derived2(); d = b as Derived1; if (d != null) { Console.WriteLine("b = new Derived2();"); } }
static int Main () { Derived1 d1 = new Derived1 (); Derived2 d2 = new Derived2 (); Derived3 d3 = new Derived3 (); Base b1 = d1; Base b2 = d2; Base rb = new Base (); if (d1.Turn () != 4) return 1; if (((IVehicle)d1).Turn () != 4) return 2; if (((Base)d2).Turn () != 8) return 10; if (((IVehicle)d2).Turn () != 7) return 3; if (b2.Turn () != 8) return 4; if (((IVehicle)b2).Turn () != 7) return 5; if (((IVehicle)rb).Stop () != 2) return 6; if (((IVehicle)d1).Stop () != 2) return 7; if (((IVehicle)d2).Stop () != 6) return 8; if (d3.Walk () != 1) return 9; //Console.WriteLine ("TEST {0}", ((IVehicle)b2).Turn ()); return 0; }
public static void RunMain() { Base b = new Base(); Console.WriteLine("Base.MyMethod(): {0}", b.MyMethod()); Derived d11 = new Derived(); Base d12 = new Derived(); Console.WriteLine("Derived.MyMethod(): {0}", d11.MyMethod()); Console.WriteLine("Derived Base.MyMethod(): {0}", d12.MyMethod()); Derived2 d21 = new Derived2(); Base d22 = new Derived2(); Console.WriteLine("Derived2.MyMethod(): {0}", d21.MyMethod()); Console.WriteLine("Derived2 Base.MyMethod(): {0}", d22.MyMethod()); Console.Write("Press a key to exit"); Console.ReadKey(); }
static void DerivedClassesTest() { int res; //==================== Cases of derived classes ====================// Derived1.Inner inner1 = new Derived1.Inner(); res = inner1.Method(new Derived1()); Console.WriteLine("Derived1.Inner.Method(new Derived1()) = " + res); if (res != 1) { Success = false; } Derived2 <string> .Inner inner2 = new Derived2 <string> .Inner(); res = inner2.Method(new Derived2 <string>()); Console.WriteLine("Derived2<string>.Inner.Method(new Derived2<string>()) = " + res); if (res != 1) { Success = false; } Derived3.Inner inner3 = new Derived3.Inner(); res = inner3.Method(new Derived3()); Console.WriteLine("Derived3.Inner.Method(new Derived3()) = " + res); if (res != 1) { Success = false; } Derived4 <string> .Inner inner4 = new Derived4 <string> .Inner(); res = inner4.Method(new Derived4 <string>()); Console.WriteLine("Derived4<string>.Inner.Method(new Derived4<string>()) = " + res); if (res != 1) { Success = false; } }
public void BaseClassTest() { var schema = Schema.Parse(BaseClassSchema); var derived1write = new Derived1() { A = "derived1", B = 7 }; var derived2write = new Derived2() { A = "derived2", C = 3.14 }; // union types (except for [null, type]) need to be manually registered var unionSchema = schema as UnionSchema; var cache = new ClassCache(); cache.LoadClassCache(typeof(Derived1), unionSchema[0]); cache.LoadClassCache(typeof(Derived2), unionSchema[1]); var x = schema as RecordSchema; var writer = new ReflectWriter <BaseClass>(schema, cache); var reader = new ReflectReader <BaseClass>(schema, schema, cache); using (var stream = new MemoryStream(256)) { var encoder = new BinaryEncoder(stream); writer.Write(derived1write, encoder); writer.Write(derived2write, encoder); stream.Seek(0, SeekOrigin.Begin); var decoder = new BinaryDecoder(stream); var derived1read = (Derived1)reader.Read(decoder); var derived2read = (Derived2)reader.Read(decoder); Assert.AreEqual(derived1read.A, derived1write.A); Assert.AreEqual(derived1read.B, derived1write.B); Assert.AreEqual(derived2read.A, derived2write.A); Assert.AreEqual(derived2read.C, derived2write.C); } }
static void Main(string[] args) { var obj = new Derived(); obj.MyDerivedMethod(); var obj2 = new Derived2(); obj2.MyDerivedMethod(); var obj3 = new DefaultClass();//Default class is internal // obj3.DefaultMethod(); //Cannot access var obj4 = new Base(); obj4._internalField = 45; obj4._protectedInternalField = 46; //obj4._protectedField = 47; //Cannot access obj4.MyInternalMethod(); obj4.MyProtectedInternalMethod(); // obj4.MyProtectedMethod(); //Cannot access }
public void NullableTest() { var nullableSchema = @" [ ""null"", { ""type"" : ""record"", ""name"" : ""Dervied2"", ""fields"" : [ { ""name"" : ""A"", ""type"" : ""string""}, { ""name"" : ""C"", ""type"" : ""double""} ] }, ] "; var schema = Schema.Parse(nullableSchema); var derived2write = new Derived2() { A = "derived2", C = 3.14 }; var writer = new ReflectWriter <Derived2>(schema); var reader = new ReflectReader <Derived2>(schema, schema); using (var stream = new MemoryStream(256)) { var encoder = new BinaryEncoder(stream); writer.Write(derived2write, encoder); writer.Write(null, encoder); stream.Seek(0, SeekOrigin.Begin); var decoder = new BinaryDecoder(stream); var derived2read = reader.Read(decoder); var derived2null = reader.Read(decoder); Assert.AreEqual(derived2read.A, derived2write.A); Assert.AreEqual(derived2read.C, derived2write.C); Assert.IsNull(derived2null); } }
static void Main(string[] args) { // 通常のインスタンス生成 Derived1 dynamicD1 = new Derived1(); Derived2 dynamicD2 = new Derived2(); Base dynamicB = new Base(); // 単純なアップキャスト // 「Base」クラス型の変数に // 「Derived1」クラスのインスタンスを入れる Base staticB1 = new Derived1(); // 「Derived1」クラス型の変数に // 「Base」クラス型の「Derived1」クラスインスタンスを入れるが // ダウンキャストとなるため明示的なキャストが必須 Derived1 staticD1 = (Derived1)staticB1; // 単純なアップキャスト Base staticB2 = new Derived1(); // 「Derived2」クラス型の変数に // 「Base」クラス型の「Derived1」クラスインスタンスを入れる // →「Base」クラス型の変数のためキャストは可能だが // インスタンスとして入っているのは「Derived1」クラスのため実行時にエラーとなる Derived2 staticD2 = (Derived2)staticB2; // 派生クラスに基底クラスのインスタンスは入れられない Derived1 staticD1Error = (Derived1) new Base(); #region パターン_エラー #if ERROR #endif #endregion Console.ReadKey(); }
public void DiscriminatedUnionThreeUsingSecondToString() { Derived2 d2 = new Derived2(); IDiscriminatedUnion<Base, Derived1, Derived2, Derived3> d = DiscriminatedUnion.Second<Base, Derived1, Derived2, Derived3>(d2); Assert.AreEqual("{Second:" + d2 + "}", d.ToString()); }
public void DiscriminatedUnionThreeUsingSecondSwitchFuncWorking() { Derived2 d2 = new Derived2(); IDiscriminatedUnion<Base, Derived1, Derived2, Derived3> d = DiscriminatedUnion.Second<Base, Derived1, Derived2, Derived3>(d2); bool ranSecond = d.Switch(v => false, v => true, v => false); Assert.IsTrue(ranSecond); }
public void DiscriminatedUnionThreeUsingSecondSwitchActionWorking() { Derived2 d2 = new Derived2(); IDiscriminatedUnion<Base, Derived1, Derived2, Derived3> d = DiscriminatedUnion.Second<Base, Derived1, Derived2, Derived3>(d2); bool ranSecond = false; d.Switch(v => { ranSecond = false; }, v => { ranSecond = true; }, v => { ranSecond = false; }); Assert.IsTrue(ranSecond); }
public static void Main() { //Test Derived1 Derived1 d1=new Derived1(); check(d1.cbase1y()!=3, "Derived1::cbase1y() failed"); check(d1.cbase2()!=4, "Derived1::cbase2() failed"); //Test Derived2 Derived2 d2=new Derived2(); check(d2.cbase1y()!=6, "Derived2::cbase1y() failed"); check(d2.abase1()!=5, "Derived2::abase1() failed"); //Test Derived3 Derived3 d3=new Derived3(); check(d3.cbase1y()!=7, "Derived3::cbase1y() failed"); check(d3.cbase2()!=8, "Derived3::cbase2() failed"); check(d3.abase1()!=9, "Derived3::abase1() failed"); //Test Bottom1 Bottom1 b1=new Bottom1(); check(b1.cbase1y()!=103, "Bottom1::cbase1y() failed"); check(b1.cbase2()!=104, "Bottom1::cbase2() failed"); //Test Bottom2 Bottom2 b2=new Bottom2(); check(b2.cbase1y()!=206, "Bottom2::cbase1y() failed"); check(b2.abase1()!=205, "Bottom2::abase1() failed"); //Test Bottom3 Bottom3 b3=new Bottom3(); check(b3.cbase1y()!=307, "Bottom3::cbase1y() failed"); check(b3.cbase2()!=308, "Bottom3::cbase2() failed"); check(b3.abase1()!=309, "Bottom3::abase1() failed"); //Test interfaces from c++ classes CBase1 cb1=new CBase1SwigImpl(); CBase2 cb2=new CBase2SwigImpl(); check(cb1.cbase1y()!=1, "CBase1::cbase1y() failed"); check(cb2.cbase2()!=2, "CBase2::cbase2() failed"); //Test abstract class as return value ABase1 ab1=d3.cloneit(); check(ab1.abase1()!=9, "Derived3::abase1() through ABase1 failed"); //Test concrete base class as return value CBase1 cb6=d2.cloneit(); CBase2 cb7=d1.cloneit(); check(cb6.cbase1y()!=6, "Derived2::cbase1y() through CBase1 failed"); check(cb7.cbase2()!=4, "Derived1:cbase2() through ABase1 failed"); //Test multi inheritance CBase1 cb3=new Derived1(); CBase1 cb4=new Derived3(); CBase2 cb5=new Derived3(); ABase1 ab6=new Derived2(); check(cb3.cbase1y()!=3, "Derived1::cbase1y() through CBase1 failed"); check(cb4.cbase1y()!=7, "Derived3::cbase1y() through CBase1 failed"); check(cb5.cbase2()!=8, "Derived3::cbase2() through CBase2 failed"); check(ab6.abase1()!=5, "Derived2::abase1() through ABase1 failed"); //Test base classes as parameter in C# multiple_inheritance_abstract_runme mhar=new multiple_inheritance_abstract_runme(); check(mhar.jcbase1b(d1)!=3, "jcbase1b() through Derived1 as parameter failed"); check(mhar.jcbase1b(d2)!=6, "jcbase1b() through Derived2 as parameter failed"); check(mhar.jcbase1b(d3)!=7, "jcbase1b() through Derived3 as parameter failed"); check(mhar.jcbase2(d1)!=4, "jcbase2() through Derived1 as parameter failed"); check(mhar.jcbase2(d3)!=8, "jcbase2() through Derived3 as parameter failed"); check(mhar.jabase1(d2)!=5, "jabase1() through Derived2 as parameter failed"); check(mhar.jabase1(d3)!=9, "jabase1() through Derived3 as parameter failed"); //Value parameters //Test CBase1 CBase2 as parameters (note slicing for Derived and Bottom classes) check(multiple_inheritance_abstract.InputValCBase1(d1)!=1, "InputValCBase1(), Derived1 as a parameter failed"); check(multiple_inheritance_abstract.InputValCBase1(d2)!=1, "InputValCBase1(), Derived2 as a parameter failed"); check(multiple_inheritance_abstract.InputValCBase1(d3)!=1, "InputValCBase1(), Derived3 as a parameter failed"); check(multiple_inheritance_abstract.InputValCBase2(d3)!=2, "InputValCBase2(), Derived3 as a parameter failed"); check(multiple_inheritance_abstract.InputValCBase2(d1)!=2, "InputValCBase2(), Derived1 as a parameter failed"); check(multiple_inheritance_abstract.InputValCBase1(cb1)!=1, "InputValCBase1(), CBase1 as a parameter failed"); check(multiple_inheritance_abstract.InputValCBase2(cb2)!=2, "InputValCBase2(), CBase2 as a parameter failed"); check(multiple_inheritance_abstract.InputValCBase1(b1)!=1, "InputValCBase1(), Bottom1 as a parameter failed"); check(multiple_inheritance_abstract.InputValCBase1(b2)!=1, "InputValCBase1(), Bottom2 as a parameter failed"); check(multiple_inheritance_abstract.InputValCBase1(b3)!=1, "InputValCBase1(), Bottom3 as a parameter failed"); check(multiple_inheritance_abstract.InputValCBase2(b3)!=2, "InputValCBase2(), Bottom3 as a parameter failed"); check(multiple_inheritance_abstract.InputValCBase2(b1)!=2, "InputValCBase2(), Bottom1 as a parameter failed"); //Pointer parameters //Test ABase1 as a parameter check(multiple_inheritance_abstract.InputPtrABase1(d2)!=5, "InputPtrABase1() through Derived2 as a parameter failed"); check(multiple_inheritance_abstract.InputPtrABase1(d3)!=9, "InputPtrABase1() through Derived3 as a parameter failed"); check(multiple_inheritance_abstract.InputPtrABase1(b2)!=205, "InputPtrABase1() through Bottom2 as a parameter failed"); check(multiple_inheritance_abstract.InputPtrABase1(b3)!=309, "InputPtrABase1() through Bottom3 as a parameter failed"); //Test CBase1 CBase2 as parameters check(multiple_inheritance_abstract.InputPtrCBase1(d1)!=3, "InputPtrCBase1(), Derived1 as a parameter failed"); check(multiple_inheritance_abstract.InputPtrCBase1(d2)!=6, "InputPtrCBase1(), Derived2 as a parameter failed"); check(multiple_inheritance_abstract.InputPtrCBase1(d3)!=7, "InputPtrCBase1(), Derived3 as a parameter failed"); check(multiple_inheritance_abstract.InputPtrCBase2(d3)!=8, "InputPtrCBase2(), Derived3 as a parameter failed"); check(multiple_inheritance_abstract.InputPtrCBase2(d1)!=4, "InputPtrCBase2(), Derived1 as a parameter failed"); check(multiple_inheritance_abstract.InputPtrCBase1(cb1)!=1, "InputPtrCBase1(), CBase1 as a parameter failed"); check(multiple_inheritance_abstract.InputPtrCBase2(cb2)!=2, "InputPtrCBase2(), CBase2 as a parameter failed"); check(multiple_inheritance_abstract.InputPtrCBase1(b1)!=103, "InputPtrCBase1(), Bottom1 as a parameter failed"); check(multiple_inheritance_abstract.InputPtrCBase1(b2)!=206, "InputPtrCBase1(), Bottom2 as a parameter failed"); check(multiple_inheritance_abstract.InputPtrCBase1(b3)!=307, "InputPtrCBase1(), Bottom3 as a parameter failed"); check(multiple_inheritance_abstract.InputPtrCBase2(b3)!=308, "InputPtrCBase2(), Bottom3 as a parameter failed"); check(multiple_inheritance_abstract.InputPtrCBase2(b1)!=104, "InputPtrCBase2(), Bottom1 as a parameter failed"); //Reference parameters //Test ABase1 as a parameter check(multiple_inheritance_abstract.InputRefABase1(d2)!=5, "InputRefABase1() through Derived2 as a parameter failed"); check(multiple_inheritance_abstract.InputRefABase1(d3)!=9, "InputRefABase1() through Derived3 as a parameter failed"); check(multiple_inheritance_abstract.InputRefABase1(b2)!=205, "InputRefABase1() through Bottom2 as a parameter failed"); check(multiple_inheritance_abstract.InputRefABase1(b3)!=309, "InputRefABase1() through Bottom3 as a parameter failed"); //Test CBase1 CBase2 as parameters check(multiple_inheritance_abstract.InputRefCBase1(d1)!=3, "InputRefCBase1(), Derived1 as a parameter failed"); check(multiple_inheritance_abstract.InputRefCBase1(d2)!=6, "InputRefCBase1(), Derived2 as a parameter failed"); check(multiple_inheritance_abstract.InputRefCBase1(d3)!=7, "InputRefCBase1(), Derived3 as a parameter failed"); check(multiple_inheritance_abstract.InputRefCBase2(d3)!=8, "InputRefCBase2(), Derived3 as a parameter failed"); check(multiple_inheritance_abstract.InputRefCBase2(d1)!=4, "InputRefCBase2(), Derived1 as a parameter failed"); check(multiple_inheritance_abstract.InputRefCBase1(cb1)!=1, "InputRefCBase1(), CBase1 as a parameter failed"); check(multiple_inheritance_abstract.InputRefCBase2(cb2)!=2, "InputRefCBase2(), CBase2 as a parameter failed"); check(multiple_inheritance_abstract.InputRefCBase1(b1)!=103, "InputRefCBase1(), Bottom1 as a parameter failed"); check(multiple_inheritance_abstract.InputRefCBase1(b2)!=206, "InputRefCBase1(), Bottom2 as a parameter failed"); check(multiple_inheritance_abstract.InputRefCBase1(b3)!=307, "InputRefCBase1(), Bottom3 as a parameter failed"); check(multiple_inheritance_abstract.InputRefCBase2(b3)!=308, "InputRefCBase2(), Bottom3 as a parameter failed"); check(multiple_inheritance_abstract.InputRefCBase2(b1)!=104, "InputRefCBase2(), Bottom1 as a parameter failed"); //Const reference pointer parameters //Test ABase1 as a parameter check(multiple_inheritance_abstract.InputCPtrRefABase1(d2)!=5, "InputCPtrRefABase1() through Derived2 as a parameter failed"); check(multiple_inheritance_abstract.InputCPtrRefABase1(d3)!=9, "InputCPtrRefABase1() through Derived3 as a parameter failed"); check(multiple_inheritance_abstract.InputCPtrRefABase1(b2)!=205, "InputCPtrRefABase1() through Bottom2 as a parameter failed"); check(multiple_inheritance_abstract.InputCPtrRefABase1(b3)!=309, "InputCPtrRefABase1() through Bottom3 as a parameter failed"); //Test CBase1 CBase2 as parameters check(multiple_inheritance_abstract.InputCPtrRefCBase1(d1)!=3, "InputCPtrRefCBase1(), Derived1 as a parameter failed"); check(multiple_inheritance_abstract.InputCPtrRefCBase1(d2)!=6, "InputCPtrRefCBase1(), Derived2 as a parameter failed"); check(multiple_inheritance_abstract.InputCPtrRefCBase1(d3)!=7, "InputCPtrRefCBase1(), Derived3 as a parameter failed"); check(multiple_inheritance_abstract.InputCPtrRefCBase2(d3)!=8, "InputCPtrRefCBase2(), Derived3 as a parameter failed"); check(multiple_inheritance_abstract.InputCPtrRefCBase2(d1)!=4, "InputCPtrRefCBase2(), Derived1 as a parameter failed"); check(multiple_inheritance_abstract.InputCPtrRefCBase1(cb1)!=1, "InputCPtrRefCBase1(), CBase1 as a parameter failed"); check(multiple_inheritance_abstract.InputCPtrRefCBase2(cb2)!=2, "InputCPtrRefCBase2(), CBase2 as a parameter failed"); check(multiple_inheritance_abstract.InputCPtrRefCBase1(b1)!=103, "InputCPtrRefCBase1(), Bottom1 as a parameter failed"); check(multiple_inheritance_abstract.InputCPtrRefCBase1(b2)!=206, "InputCPtrRefCBase1(), Bottom2 as a parameter failed"); check(multiple_inheritance_abstract.InputCPtrRefCBase1(b3)!=307, "InputCPtrRefCBase1(), Bottom3 as a parameter failed"); check(multiple_inheritance_abstract.InputCPtrRefCBase2(b3)!=308, "InputCPtrRefCBase2(), Bottom3 as a parameter failed"); check(multiple_inheritance_abstract.InputCPtrRefCBase2(b1)!=104, "InputCPtrRefCBase2(), Bottom1 as a parameter failed"); //Derived classes as parameters check(multiple_inheritance_abstract.InputValDerived1(d1)!=3+4, "InputValDerived1() failed"); check(multiple_inheritance_abstract.InputValDerived2(d2)!=6+5, "InputValDerived2() failed"); check(multiple_inheritance_abstract.InputValDerived3(d3)!=7+8+9, "InputValDerived3() failed"); check(multiple_inheritance_abstract.InputRefDerived1(d1)!=3+4, "InputRefDerived1() failed"); check(multiple_inheritance_abstract.InputRefDerived2(d2)!=6+5, "InputRefDerived2() failed"); check(multiple_inheritance_abstract.InputRefDerived3(d3)!=7+8+9, "InputRefDerived3() failed"); check(multiple_inheritance_abstract.InputPtrDerived1(d1)!=3+4, "InputPtrDerived1() failed"); check(multiple_inheritance_abstract.InputPtrDerived2(d2)!=6+5, "InputPtrDerived2() failed"); check(multiple_inheritance_abstract.InputPtrDerived3(d3)!=7+8+9, "InputPtrDerived3() failed"); check(multiple_inheritance_abstract.InputCPtrRefDerived1(d1)!=3+4, "InputCPtrRefDerived1() failed"); check(multiple_inheritance_abstract.InputCPtrRefDerived2(d2)!=6+5, "InputCPtrRefDerived2() failed"); check(multiple_inheritance_abstract.InputCPtrRefDerived3(d3)!=7+8+9, "InputCPtrRefDerived3() failed"); //Bottom classes as Derived parameters check(multiple_inheritance_abstract.InputValDerived1(b1)!=3+4, "InputValDerived1() failed"); check(multiple_inheritance_abstract.InputValDerived2(b2)!=6+5, "InputValDerived2() failed"); check(multiple_inheritance_abstract.InputValDerived3(b3)!=7+8+9, "InputValDerived3() failed"); check(multiple_inheritance_abstract.InputRefDerived1(b1)!=103+104, "InputRefDerived1() failed"); check(multiple_inheritance_abstract.InputRefDerived2(b2)!=206+205, "InputRefDerived2() failed"); check(multiple_inheritance_abstract.InputRefDerived3(b3)!=307+308+309, "InputRefDerived3() failed"); check(multiple_inheritance_abstract.InputPtrDerived1(b1)!=103+104, "InputPtrDerived1() failed"); check(multiple_inheritance_abstract.InputPtrDerived2(b2)!=206+205, "InputPtrDerived2() failed"); check(multiple_inheritance_abstract.InputPtrDerived3(b3)!=307+308+309, "InputPtrDerived3() failed"); check(multiple_inheritance_abstract.InputCPtrRefDerived1(b1)!=103+104, "InputCPtrRefDerived1() failed"); check(multiple_inheritance_abstract.InputCPtrRefDerived2(b2)!=206+205, "InputCPtrRefDerived2() failed"); check(multiple_inheritance_abstract.InputCPtrRefDerived3(b3)!=307+308+309, "InputCPtrRefDerived3() failed"); //Bottom classes as Bottom parameters check(multiple_inheritance_abstract.InputValBottom1(b1)!=103+104, "InputValBottom1() failed"); check(multiple_inheritance_abstract.InputValBottom2(b2)!=206+205, "InputValBottom2() failed"); check(multiple_inheritance_abstract.InputValBottom3(b3)!=307+308+309, "InputValBottom3() failed"); check(multiple_inheritance_abstract.InputRefBottom1(b1)!=103+104, "InputRefBottom1() failed"); check(multiple_inheritance_abstract.InputRefBottom2(b2)!=206+205, "InputRefBottom2() failed"); check(multiple_inheritance_abstract.InputRefBottom3(b3)!=307+308+309, "InputRefBottom3() failed"); check(multiple_inheritance_abstract.InputPtrBottom1(b1)!=103+104, "InputPtrBottom1() failed"); check(multiple_inheritance_abstract.InputPtrBottom2(b2)!=206+205, "InputPtrBottom2() failed"); check(multiple_inheritance_abstract.InputPtrBottom3(b3)!=307+308+309, "InputPtrBottom3() failed"); check(multiple_inheritance_abstract.InputCPtrRefBottom1(b1)!=103+104, "InputCPtrRefBottom1() failed"); check(multiple_inheritance_abstract.InputCPtrRefBottom2(b2)!=206+205, "InputCPtrRefBottom2() failed"); check(multiple_inheritance_abstract.InputCPtrRefBottom3(b3)!=307+308+309, "InputCPtrRefBottom3() failed"); // Return pointers check(multiple_inheritance_abstract.MakePtrDerived1_CBase1().cbase1y()!=3, "MakePtrDerived1_CBase1 failed"); check(multiple_inheritance_abstract.MakePtrDerived1_CBase2().cbase2()!=4, "MakePtrDerived1_CBase2 failed"); check(multiple_inheritance_abstract.MakePtrDerived2_CBase1().cbase1y()!=6, "MakePtrDerived2_CBase1 failed"); check(multiple_inheritance_abstract.MakePtrDerived2_ABase1().abase1()!=5, "MakePtrDerived2_ABase1 failed"); check(multiple_inheritance_abstract.MakePtrDerived3_ABase1().abase1()!=9, "MakePtrDerived3_ABase1 failed"); check(multiple_inheritance_abstract.MakePtrDerived3_CBase1().cbase1y()!=7, "MakePtrDerived3_CBase1 failed"); check(multiple_inheritance_abstract.MakePtrDerived3_CBase2().cbase2()!=8, "MakePtrDerived3_CBase2 failed"); // Return references check(multiple_inheritance_abstract.MakeRefDerived1_CBase1().cbase1y()!=3, "MakeRefDerived1_CBase1 failed"); check(multiple_inheritance_abstract.MakeRefDerived1_CBase2().cbase2()!=4, "MakeRefDerived1_CBase2 failed"); check(multiple_inheritance_abstract.MakeRefDerived2_CBase1().cbase1y()!=6, "MakeRefDerived2_CBase1 failed"); check(multiple_inheritance_abstract.MakeRefDerived2_ABase1().abase1()!=5, "MakeRefDerived2_ABase1 failed"); check(multiple_inheritance_abstract.MakeRefDerived3_ABase1().abase1()!=9, "MakeRefDerived3_ABase1 failed"); check(multiple_inheritance_abstract.MakeRefDerived3_CBase1().cbase1y()!=7, "MakeRefDerived3_CBase1 failed"); check(multiple_inheritance_abstract.MakeRefDerived3_CBase2().cbase2()!=8, "MakeRefDerived3_CBase2 failed"); // Return by value (sliced objects) check(multiple_inheritance_abstract.MakeValDerived1_CBase1().cbase1y()!=1, "MakeValDerived1_CBase1 failed"); check(multiple_inheritance_abstract.MakeValDerived1_CBase2().cbase2()!=2, "MakeValDerived1_CBase2 failed"); check(multiple_inheritance_abstract.MakeValDerived2_CBase1().cbase1y()!=1, "MakeValDerived2_CBase1 failed"); check(multiple_inheritance_abstract.MakeValDerived3_CBase1().cbase1y()!=1, "MakeValDerived3_CBase1 failed"); check(multiple_inheritance_abstract.MakeValDerived3_CBase2().cbase2()!=2, "MakeValDerived3_CBase2 failed"); }
public MethodId Handle( Derived2 inst ) { return MethodId.Handler_Derived2; }
public void DiscriminatedUnionTwoUsingSecondSecondWorking() { Derived2 d2 = new Derived2(); IDiscriminatedUnion<Base, Derived1, Derived2> d = DiscriminatedUnion.Second<Base, Derived1, Derived2>(d2); Assert.AreSame(d2, d.Second); }
public void DiscriminatedUnionTwoUsingSecondIsFirstWorking() { Derived2 d2 = new Derived2(); IDiscriminatedUnion<Base, Derived1, Derived2> d = DiscriminatedUnion.Second<Base, Derived1, Derived2>(d2); Assert.IsFalse(d.IsFirst); }
static int Main() { Derived1 d1 = new Derived1 (); Derived2 d2 = new Derived2 (); Base b1 = d1; Base b2 = d2; if (d1.Turn () != 4) return 1; if (((IVehicle)d1).Turn () != 4) return 2; if (((IVehicle)d2).Turn () != 7) return 3; if (b2.Turn () != 8) return 4; if (((IVehicle)b2).Turn () != 7) return 5; return 0; }
public void test5a() { IBase obj = new Derived2(); AssertEquals("Derived2", 22, Foo(obj)); }
public void DiscriminatedUnionTwoUsingFirstCreateSecondWorks() { IDiscriminatedUnion<Base, Derived1, Derived2> d = DiscriminatedUnion.First<Base, Derived1, Derived2>(new Derived1()); Derived2 d2 = new Derived2(); IDiscriminatedUnion<Base, Derived1, Derived2> dd = d.CreateSecond(d2); Assert.AreNotSame(d, dd); Assert.AreNotSame(d.Value, dd.Value); Assert.AreSame(d2, dd.Value); Assert.IsTrue(dd.IsSecond); }
public void DiscriminatedUnionThreeUsingThirdCreateSecondWorks() { IDiscriminatedUnion<Base, Derived1, Derived2, Derived3> d = DiscriminatedUnion.Third<Base, Derived1, Derived2, Derived3>(new Derived3()); Derived2 d2 = new Derived2(); IDiscriminatedUnion<Base, Derived1, Derived2, Derived3> dd = d.CreateSecond(d2); Assert.AreNotSame(d, dd); Assert.AreNotSame(d.Value, dd.Value); Assert.AreSame(d2, dd.Value); Assert.IsTrue(dd.IsSecond); }
public void DiscriminatedUnionThreeUsingSecondIsThirdWorking() { Derived2 d2 = new Derived2(); IDiscriminatedUnion<Base, Derived1, Derived2, Derived3> d = DiscriminatedUnion.Second<Base, Derived1, Derived2, Derived3>(d2); Assert.IsFalse(d.IsThird); }
public void DiscriminatedUnionThreeUsingSecondFirstWorking() { Derived2 d2 = new Derived2(); IDiscriminatedUnion<Base, Derived1, Derived2, Derived3> d = DiscriminatedUnion.Second<Base, Derived1, Derived2, Derived3>(d2); Derived1 d1; try { d1 = d.First; } catch { d1 = null; } Assert.IsNull(d1); }
public void DiscriminatedUnionThreeUsingSecondThirdWorking() { Derived2 d2 = new Derived2(); IDiscriminatedUnion<Base, Derived1, Derived2, Derived3> d = DiscriminatedUnion.Second<Base, Derived1, Derived2, Derived3>(d2); Derived3 d3; try { d3 = d.Third; } catch { d3 = null; } Assert.IsNull(d3); }
public IBase GetObject(int type) { IBase ib = null; switch (type) { case 1: ib = new Derived1(); break; case 2: ib = new Derived2(); break; } return ib; }
public void DiscriminatedUnionThreeUsingSecondValueWorking() { Derived2 d2 = new Derived2(); IDiscriminatedUnion<Base, Derived1, Derived2, Derived3> d = DiscriminatedUnion.Second<Base, Derived1, Derived2, Derived3>(d2); Assert.AreSame(d2, d.Value); }
public void test5b() { IBase obj = new Derived2(); AssertEquals("Derived2", 12, Foo((Derived2)obj)); }
public int Foo(Derived2 x) { return x.Foo() + 10; }