interface cannot contain fields Что это значит?

324
28 марта 2017, 10:14

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

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

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

public void Yaz()

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

{
    Console.WriteLine(mesaj);
}

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

Answer 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.

READ ALSO
Отложенное получение результата задачи

Отложенное получение результата задачи

С появлением async await все стало красивоВозьмем, например, такой кусочек кода

238
Элементы в строке

Элементы в строке

Как можно узнать что за элемент находится в 5-ом месте в строке с конца считая ?

216
Проблема с компонентом textBox

Проблема с компонентом textBox

Делаю простой файловый менеджерПапки/файлы отображает компонент webBrowser

265
Создание WebSocket'а

Создание WebSocket'а

Скажите пожалуйста, в чем разница между созданием веб-сокета с помощью конструкции типа:

243