I had a recent code review that gave me some slightly surprising feedback. It was in an instantiable service class that had a number of fully encapsulated private methods. In other words, methods that didn't reference any higher level functions or variables. For a trivial example:
private decimal IncreaseByPercent(decimal original, int percentageIncrease)
{
return original + ((original / 100) * percentageIncrease);
}
The feedback suggested that methods like this should be marked as static. It's not a suggestion I've come across before: indeed I've rarely used static methods outside of static classes. What would be the advantages of doing so?