public void fire() { if ((state & GunState.SaffetyOn) == GunState.SaffetyOn) { return; } if (bullets == 1) { noAmmoTime = DateTime.Now; state &= ~GunState.Charged; } if (bullets > 0) { bullets--; precision -= 0.001; if (precision < 0.5) { state &= ~GunState.Working; } } else { NoAmmoExceptionArgs args = new NoAmmoExceptionArgs(noAmmoTime); throw new NoAmmoException(args); } }
void IFireable.fire() { if (bullets == 1) { noAmmoTime = DateTime.Now; } if (bullets > 0) { bullets--; } else { NoAmmoExceptionArgs args = new NoAmmoExceptionArgs(noAmmoTime); throw new NoAmmoException(args); } }
public void fire() { if (isSafetyState()) //Инкапсулируйте сложные выражения { return; } if (bullets == 1) { noAmmoTime = DateTime.Now; gunState &= ~GunState.Charged; } if (bullets > 0) { makeShot(); // Блоки и отступы: блоки if, else, switch должны состоять из одной строки } else { NoAmmoExceptionArgs args = new NoAmmoExceptionArgs(noAmmoTime); // Используйте исключения, вместо кодов ошибок throw new NoAmmoException(args); } }
public NoAmmoException(NoAmmoExceptionArgs args) { this.args = args; }
public NoAmmoException() { this.args = new NoAmmoExceptionArgs(DateTime.Now); }