Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace ConsoleApp1
- {
- public class Program
- {
- public abstract class GenericDummy<T>
- {
- public abstract void Execute(T item);
- }
- public abstract class Dummy
- {
- public abstract void Execute(object item);
- public abstract void Execute(string item);
- }
- // Class that overrides Execute method and has self overload of Execute method
- internal class StringDummy : GenericDummy<string>
- {
- public void Execute(object item)
- {
- Console.WriteLine("Object triggered");
- }
- public override void Execute(string item)
- {
- Console.WriteLine("String overload triggered");
- }
- }
- // Class that overrides both overload methods
- internal class SimpleDummy : Dummy
- {
- public override void Execute(object item)
- {
- Console.WriteLine("Object override overload triggered");
- }
- public override void Execute(string item)
- {
- Console.WriteLine("String override overload triggered");
- }
- }
- // Class that has simple overload methods
- internal class SimpleOverload
- {
- public void Execute(object item)
- {
- Console.WriteLine("Object triggered");
- }
- public void Execute(string item)
- {
- Console.WriteLine("String triggered");
- }
- }
- private static void Main()
- {
- new SimpleDummy().Execute(null); // OUTPUT: String override overload triggered
- new StringDummy().Execute(null); // OUTPUT: Object triggered
- new SimpleOverload().Execute(null); // OUTPUT: String triggered
- Console.ReadLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement