@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
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
makarychev13
@makarychev13
.NET-developer
public void Define() {
    this._IWeaponBehavior.useWeapon();
}


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

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

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