Задать вопрос
@embiid

Как исправить ошибку?

interface IWeaponBehavior {
        void useWeapon();
    }

    class KnifeBehavior : IWeaponBehavior {
        public void useWeapon() {
            Console.WriteLine("I've a knife.");
        }
    }

    class SwordBehavior : IWeaponBehavior {
        public void useWeapon() {
            Console.WriteLine("I've a sword.");
        }
    }

    class BowAndArrowBehavior : IWeaponBehavior {
        public void useWeapon() {
            Console.WriteLine("I've a bow and arrows.");
        }
    }

    class AxeBehavior : IWeaponBehavior {
        public void useWeapon() {
            Console.WriteLine("I've a axe.");
        }
    }

    class GunBehavior : IWeaponBehavior {
        public void useWeapon() {
            Console.WriteLine("I've a gun.");

        }
    }

    class Character {
        public string Gender { get; set; }
        public string Position { get; set; }

        public Character() {

        }

        public Character(string Gender, string Position) {
            this.Gender = Gender;
            this.Position = Position;
        }
    }

    class Realization {
        public IWeaponBehavior _IWeaponBehavior { get; set; }

        public Realization(IWeaponBehavior IWeaponBehavior) {
            IWeaponBehavior = _IWeaponBehavior;
        }

        public void Define() {
            Console.WriteLine(this._IWeaponBehavior.useWeapon());
        }
    }


Ошибка происходит в функции - Define с функцией Console.WriteLine.
Если изменить в интерфейсе возвращаемое значение как string и переделать его в других участках коде - ошибки не произойдет. Как избежать ошибки используя void?5c45db4e6ade2453959282.png
  • Вопрос задан
  • 82 просмотра
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Решения вопроса 1
makarychev13
@makarychev13
.NET-developer
public void Define() {
    this._IWeaponBehavior.useWeapon();
}


У вас useWeapon() возвращает void
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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