Можно ли заставить метод работать по-разному для разных интерфейсов? - C#
Формулировка задачи:
Добрый день!, вот возник вопрос:
Допустим есть 2 интерфейса (IEasy и IHard), и у них существует метод с одинаковым названием (sum).
Я реализую в классе оба интерфейса. Можно ли указать как вычислять метод для определенного интерфейса?
Тут же думаю, тогда будет непонятно какой метод вызывать, если явно интерфейс не указан?
Может есть вариант сделать 3 версии метода?
-Одну версию для интерфейса IEasy
-Вторую версию для интерфейса IHard
-Третью версию по умолчанию?
Вот давайте на примере моего кода:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { interface IEasy { void sum(int y); } interface IHard { void sum(int y); } class MyClass : IEasy, IHard { public int x; public MyClass(int i) { x = i; } public void sum (int y) { x =x+ y; } } class Program { static void Main(string[] args) { MyClass mc = new MyClass(5); IEasy ie; ie = mc; ie.sum(5); Console.WriteLine(mc.x); Console.ReadKey(); } } }
Решение задачи: «Можно ли заставить метод работать по-разному для разных интерфейсов?»
textual
Листинг программы
class MyClass : IEasy, IHard { public int x; public MyClass(int i) { x = i; } public void IEasy.sum (int y) { x =x+ y; } public void IHard.sum (int y) { x =x+ y +100000; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д