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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы