В языках, не позволяющих использовать свободные функции (free-standing functions), приходится заменять их методом класса. При этом метод может быть статическим или нет, а в последнем случае аргумент может передаваться конструктору или методу. Что влияет на выбор одной из этих альтернатив?
class Utility
{
public static int Increment(int i) { return i + 1; }
}
class Increment
{
private int value;
public Increment(int i) { value = i + 1; }
public int Value() { return value; }
}
class Incrementer
{
public Incrementer() { }
public int Increment(int i) { return i + 1; }
}