public SymbolAndPower(string symbol, int power) { Ensure.NotNullOrEmpty(symbol, nameof(symbol)); Ensure.LessThan(power, 5, nameof(power)); Ensure.GreaterThan(power, -5, nameof(power)); // not sure about throwing here but I think it means something is wrong more often. this.Symbol = symbol; this.Power = power; }