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?