Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 05.07.2018, 12:13   #11
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от Мaкс Посмотреть сообщение
Но наследуются с одним и том же интерфейсом
Но реализовали то вы этот метод не в интерфейсе.

Цитата:
Сообщение от Мaкс Посмотреть сообщение
зачем интерфейс вообще нужен?
Я вам привел конкретный пример. Разберите и попробуйте написать код с тремя логерами.
p51x вне форума
Старый 05.07.2018, 14:02   #12
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

А что значит логгер в данном случае?
Мaкс вне форума
Старый 05.07.2018, 14:08   #13
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Класс (объект), который осуществляет логгирование, т.е. записывает логи.
p51x вне форума
Старый 05.07.2018, 14:23   #14
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

А куда логирует?
Изображения
Тип файла: png лог вики.PNG (10.8 Кб, 119 просмотров)
Мaкс вне форума
Старый 05.07.2018, 14:29   #15
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Ну вы пост прочитайте-то... Один в файл, другой в БД, третий мок для отладки. Можете вообще никуда не писать фактически, не в этом суть. Пусть при логировании в консоль выводит "Я хочу писать в файл" или "Я хочу писать в БД".
p51x вне форума
Старый 06.07.2018, 09:43   #16
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Ну написал программу по инструкции которая работает, но опять же не вижу смысла использовать интерфейс...
Мaкс вне форума
Старый 06.07.2018, 10:21   #17
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от Мaкс Посмотреть сообщение
Ну написал программу по инструкции которая работает
Где описание классов и сигнатура функции? Сколько функций, кстати?

Цитата:
Сообщение от Мaкс Посмотреть сообщение
но опять же не вижу смысла использовать интерфейс
Ну так и не используйте. Вас же никто не заставляет.
p51x вне форума
Старый 06.07.2018, 10:43   #18
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Где описание классов и сигнатура функции?
Сейчас...
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
// Создаем два интерфейса, описывающих абстрактные методы 
// арифметических операций и операций Sqrt и Sqr


// Данный класс реализует интерфейс IArOperation
class A : IArOperation
{
    int My_x, My_y;

    public int x //Возвращает просто.
    {
        set { My_x = value; }
        get { return My_x; }
    }

    public int y //Возвращает просто.
    {
        set { My_y = value; }
        get { return My_y; }
    }

    public A() { } //Только для избежания ошибки.
    public A(int x, int y) //Конструктор для создания объекта.
    {
        this.x = x;
        this.y = y;
    }

    // Реализуем методы интерфейса
    public virtual int Sum() //Возвращает x + y
    {
        return x + y;
    }

    public int Otr() //Возвращает x - y
    {
        return x - y;
    }

    public int Prz() //Возвращает x * y
    {
        return x * y;
    }

    public int Del() //Возвращает x / y
    {
        return x / y;
    }

    // В данном классе так же можно реализовать собственные методы
    public virtual void rewrite() //Вывод значения x и y.
    {
        Console.WriteLine("Переменная x: {0}\nПеременная y: {1}", x, y);
    }
}

// Данный класс унаследован от класса А, но при этом в нем не нужно
// заново реализовывать интерфейс, но при этом можно переопределить
// некоторые его методы
class Aa : A
{
    public int z;

    public Aa(int z, int x, int y)  //Конструктор для создания объекта.
        : base(x, y)
    {
        this.z = z;
    }

    // Переопределим метод Sum
    public override int Sum() //Метод для вывода значения x + y + z.
    {
        return base.x + base.y + z;
    }

    public override void rewrite() //Вызыв значений x, y и z.
    {
        base.rewrite();
        Console.WriteLine("Переменная z: " + z);
    }
}

// Данный класс унаследован от класса А, и при этом
// реализует интерфейс ISqrSqrt
class Ab : A, ISqrSqrt
{
    public int Sqr(int x) //x в квадрате.
    {
        return x * x;
    }

    public int Sqrt(int x) //Корень от x.
    {
        return (int)Math.Sqrt((double)(x));
    }
}

class Program
{
    static void Main()
    {
        A obj1 = new A(x: 10, y: 12);
        Console.WriteLine("obj1: ");
        obj1.rewrite();
        Console.WriteLine("{0} + {1} = {2}", obj1.x, obj1.y, obj1.Sum());
        Console.WriteLine("{0} * {1} = {2}", obj1.x, obj1.y, obj1.Prz());
        Aa obj2 = new Aa(z: -3, x: 10, y: 14);
        Console.WriteLine("\nobj2: ");
        obj2.rewrite();
        Console.WriteLine("{0} + {1} + {3} = {2}", obj2.x, obj2.y, obj2.Sum(), obj2.z);

        Console.ReadKey();
    }
}
Мaкс вне форума
Старый 06.07.2018, 10:51   #19
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

А где логгеры? Что за бред вы суете?
Зачем если вы не понимаете для чего нужны интерфейсы, вы берете простую задачу на наследование? А не какое-нибудь реальное применение интерфейсов?
p51x вне форума
Старый 06.07.2018, 10:59   #20
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Зачем если вы не понимаете для чего нужны интерфейсы, вы берете простую задачу на наследование? А не какое-нибудь реальное применение интерфейсов?
Копипастил от сюда: https://professorweb.ru/my/csharp/ch...level9/9_1.php
Мaкс вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
рассчитать CRC16. с текстовыми и бинарными файлами работает без проблем. Если же подсунуть ей exe файл, то вылетает. ilyakonst Общие вопросы C/C++ 4 12.04.2016 17:01
если Edit1 ='Рис', Edit2 ='10', Edit3 ='6', то автоматически заполняется Edit4 ='100'. Какой оператор лучше использовать? Юрий9 БД в Delphi 7 26.02.2016 18:04
Какой фреймворк изучить для интерфейсов БД Goretsv PHP 4 17.07.2012 03:49
Объясните смысл интерфейсов MyLastHit C# (си шарп) 8 22.11.2011 18:43
Есть ли смысл в использовании предкомпилированных заголовков, если я в них ничего не добавляю? TwiX Visual C++ 4 19.09.2011 14:15