这是一个悬而未决的问题。在决定这些之间时,我总是一直在挠头。我可以通过以下方式将值传递给类:
将参数传递给类函数:
MyClass m = new MyClass();
m.DoSomething(arg);
创建对象时传递参数:
MyClass m = new MyClass(arg);
m.DoSomething();
使用不同的函数/ Property
设置值MyClass m = new MyClass();
m.SetArg(arg);
m.DoSomething();
我明白这取决于对象需要保留参数的天气,但我认为这里有一条细线吗?如果传递太多变量,它将成为常规的函数调用。
答案 0 :(得分:8)
我使用的一些经验法则:
如果参数对类的操作至关重要,则应通过构造函数传递它。
如果仅对该功能至关重要,请通过该功能传入。
如果它只是类数据,请使用setter / properties来填充它。
如果有很多这样的参数,请将参数重构为自己的容器类(例如MyClassSettings
)。
答案 1 :(得分:0)
使用构造函数参数提供类使用的依赖项。
在对象之间传递消息时使用方法参数。
尽可能避免使用getter和setter(有关此主题的完整讨论,请参阅Why getter and setter methods are evil)。