Как сделать то же самое в C# на основе java-кода?
У меня есть такая модель java:
public class AttackCalcObserver { public boolean checkStatus(AttackStatus status) { return false; } }
public class AttackStatusObserver extends AttackCalcObserver { protected int value; protected AttackStatus status; /** * @param value * @param status */ public AttackStatusObserver(int value, AttackStatus status) { this.value = value; this.status = status; } }
основной класс:
public class AlwaysDodgeEffect { public void startEffect(final Effect effect) { AttackCalcObserver acObserver = new AttackStatusObserver(value, AttackStatus.DODGE) { @Override public boolean checkStatus(AttackStatus status) { if (status == AttackStatus.DODGE) { if (value <= 1) effect.endEffect(); else value--; return true; } else return false; } }; } }
Что я уже пробовал:
это то, что я пробовал в c#. Классы AttackCalcObserver и AttackStatusObserver одинаковы в java.
так что это всегда класс Dodgeeffect в c#:
public class AlwaysDodgeEffect { public override void startEffect(Effect effect) { AttackCalcObserver acObserver = new AttackStatusObserver(value, AttackStatus.DODGE) { //what i need todo here? }; } }
Richard MacCutchan
Я думаю, что вам нужно будет использовать события и делегатов, чтобы достичь того же эффекта.
EADever
Можете ли вы привести мне пример?
Richard MacCutchan
Ramza360 дал вам один из них ниже. Или вы можете посмотреть образцы по адресу С# Уроки (С#)[^].