0

Где здесь ошибка? Я не могу понять.

 interface IMesaj{
    string mesaj; 
    public void Yaz()
    {
        Console.WriteLine(mesaj);
    }
    void Yaz(string mesaj);
}
Mansur Mahmutov
  • 155
  • 1
  • 2
  • 10

2 Answers2

5
string mesaj; 

В интерфейсе можно объявлять только свойства и методы. Никаких полей.

public void Yaz()

В интерфейсе всё публично, поэтому никаких явных public.

{
    Console.WriteLine(mesaj);
}

Интерфейс не может содержать никаких реализаций, только объявления.

Qwertiy
  • 123,725
  • 1
    В будущем возможно, сможет – Vladislav Khapin Mar 27 '17 at 11:37
  • @VladislavKhapin, интересно :) – Qwertiy Mar 27 '17 at 14:46
  • Всем Спасибо)) А как я могу поблогадарить вас? можно ли мне добовлять репутацию кому нибудь если он мне помог? – Mansur Mahmutov Mar 27 '17 at 16:25
  • @MansurMahmutov, проголосовать за (стрелочка вверх над числом голосов) понравившиеся ответы и принять один из них нажатием на галочку слева от него. – Qwertiy Mar 27 '17 at 17:13
2

Элементами интерфейса могут быть методы, свойства, события и индексаторы.

Интерфейсы не могут содержать константы, поля, операторы, конструкторы, деструкторы или типы, а также любые статические элементы.

Элементы интерфейса не могут быть объявлены с модификаторами abstract, public, protected, internal, private, virtual, override и static.

Поэтому данное объявление интерфейса

interface IMesaj{
    string mesaj; 
    public void Yaz()
    {
        Console.WriteLine(mesaj);
    }
    void Yaz(string mesaj);
}

некорректное так как, во-первых, оно содержит объявление поля string mesaj, а, во-вторых, содержит определение метода Yaz, к тому же имеющего модификатор public.

Grundy
  • 81,538
  • Спасибо)) Почитал про отличия абстрактного класса от интерфейса. Теперь все понял. – Mansur Mahmutov Mar 27 '17 at 16:24