BitNeBolt
@BitNeBolt

Почему студия сама реализует интерфейс именно таким образом?

Есть интерфейс с одним свойством. Его надо реализовать. При установки двоеточия Студия выдает подсказку, что интерфейс не реализован. Если воспользоваться её помощью, то она пропишет исключения и ничего не работает.

Вот рабочий код,

using System;
class HelloWorld {
    public interface i 
    {
        int speed {get; set;}
    }

    class Object : i
    {
        public int speed {get; set;}
    }
    
  static void Main() {
      Object obj = new Object();
      obj.speed = 4;
      
    Console.WriteLine(obj.speed);
  }
}

который возвращает значение.

И созданный студией

using System;
class HelloWorld {
    public interface i 
    {
        int speed {get; set;}
    }

    class Object : i
    {
        public int speed {get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException();}
    }
    
  static void Main() {
      Object obj = new Object();
      obj.speed = 4;
      
    Console.WriteLine(obj.speed);
  }
}



При попытке обратиться вылетает исключение.

Зачем студия так делает, это действительно нужно?
  • Вопрос задан
  • 72 просмотра
Решения вопроса 2
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
- в визулстудии работает кнопка F1 (очень рекомендую)
- студия сгенерировала для вас ЗАГОТОВКИ (они вполне осмысленны, что бы вы не забыли их реализовать)
- а это подразумевает, что правильный код, вы туда впишете сами. в отличии о обычного проперти класса, метод интерфейса не может быть пустым.. и именно по этому, он заполнен кодом, который необходимо изменить
Ответ написан
Комментировать
freeExec
@freeExec
Участник OpenStreetMap
Нужно удалить вызов исключения и реализовать саму логику. А делает для того, чтобы ты не забыл это сделать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы