Можно ли заставить метод работать по-разному для разных интерфейсов? - 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;
}
}