This is a kind of open question. I always keep scratching my head when deciding between these. I can pass values to a class by:
Passing an argument to class function:
MyClass m = new MyClass();
m.DoSomething(arg);
Passing argument when creating object:
MyClass m = new MyClass(arg);
m.DoSomething();
Setting the value using a different function/Property
MyClass m = new MyClass();
m.SetArg(arg);
m.DoSomething();
I understand it depends on weather the object needs to retain the argument but again I think there is a fine line here? If you pass too many variables it becomes a regular functional call.