metoda generyczna

0

Chciałbym żeby moja metoda generyczna GetValue() wywoływała metodę z jednej klasy lub z drugiej w zależności od podanego typu, jak to można zrobić - mój obecny kod ma postać:

 
        public ActionResult Contact()
        {
            ViewBag.Message = GetValue(new ClassOne(), "classOne");

            return View();
        }



        public string GetValue<T>(T customClass, string type)
        {
            if (type == "classOne") return customClass.ClassOneMethod();
            else customClass.ClassTwoMethod();
        }

        class ClassOne
        {
            public string ClassOneMethod()
            {
                return "ClassOneMethod";
            }
        }

        class ClassTwo
        {
            public string ClassTwoMethod()
            {
                return "ClassTwoMethod";
            }
        }

1

Może tak interfejs ?:>

 
        public ActionResult Contact()
        {
            ViewBag.Message = GetValue(new ClassOne());
            ViewBag.Message = GetValue(new ClassTwo());
            
            return View();
        }
 
 
        public string GetValue(IInterface customClass)
        {
            return customClass.InvokeMethod();
        }
 
        interface IInterface
        {
            string InvokeMethod();
        }
    
        class ClassOne : IInterface
        {
            public string InvokeMethod()
            {
                return "ClassOneMethod";
            }
        }
 
        class ClassTwo : IInterface
        {
            public string InvokeMethod()
            {
                return "ClassTwoMethod";
            }
        }

sory za nazwy :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1