//C# Redefinition en Method Overloading Static Typing en Dynamic Binding namespace WithOverloading { public class ClassA { } public class ClassB : ClassA { } public class Class1 { public virtual void Test(ClassA classA) { Console.WriteLine("C1-CA"); } } public class Class2 : Class1 { public override void Test(ClassA classA) { Console.WriteLine("C2-CA"); } public virtual void Test(ClassB classB) { Console.WriteLine("C2-CB"); } } public class Example { public static void Main() { ClassB objectB = new ClassB(); ClassA objectA = objectB; Class2 object2 = new Class2(); Class1 object1 = object2; object1.Test(objectA); object1.Test(objectB); object2.Test(objectA); object2.Test(objectB); Console.ReadLine(); } } } namespace WithoutOverloading { public class ClassA { } public class ClassB : ClassA { } public class Class1 { public virtual void TestClassA(ClassA classA) { Console.WriteLine("C1-CA"); } } public class Class2 : Class1 { public override void TestClassA(ClassA classA) { Console.WriteLine("C2-CA"); } public virtual void TestClassB(ClassB classB) { Console.WriteLine("C2-CB"); } } public class Example2 { public static void Main() { ClassB objectB = new ClassB(); ClassA objectA = objectB; Class2 object2 = new Class2(); Class1 object1 = object2; object1.TestClassA(objectA); object1.TestClassA(objectB); object2.TestClassA(objectA); object2.TestClassB(objectB); Console.ReadLine(); } } } namespace OtherExample { public class AClass { public static void AFunction(short AArgument) { AFunction = "Short"; } public static void AFunction(int AArgument) { AFunction = "Integer"; } public static void AFunction(double AArgument) { AFunction = "Double"; } } public class Example { public static void Main() { byte aByte; short aShort; int aInteger; float aSingle; int aDouble; Console.WriteLine(AClass.AFunction(aByte)); Console.WriteLine(AClass.AFunction((aByte * aByte))); Console.WriteLine(AClass.AFunction((aByte + aByte))); Console.WriteLine(AClass.AFunction(aShort)); Console.WriteLine(AClass.AFunction((aShort * aShort))); Console.WriteLine(AClass.AFunction((aShort + aShort))); Console.WriteLine(AClass.AFunction(aInteger)); Console.WriteLine(AClass.AFunction((aInteger * aInteger))); Console.WriteLine(AClass.AFunction((aInteger + aInteger))); Console.WriteLine(AClass.AFunction(aSingle)); Console.WriteLine(AClass.AFunction((aSingle * aSingle))); Console.WriteLine(AClass.AFunction(aDouble)); Console.ReadLine(); } } //Bezoek www.vbvoorbeelden.be voor meer C# voorbeelden. //Copyright - De Wolf / vbvoorbeelden - 2003-2010 - Alle rechten voorbehouden.