参数及其在方法中的使用如何影响静态/实例设计决策?

Gur*_*epS 0 c# static static-methods

只是一个简单的问题:

我已经读过,当一个类不修改它的实例时,它应该是静态的.因此,如果我有一个名为Account的类,并且它具有Id,Duration等属性,并且这些属性不会被类修改,那么这可以是静态的,否则它应该保持静态.

这个(实例本身,通过其属性,是否变异)如何影响静态/实例决策?

此外,如果一个类需要加载参数(比如这个Account类,坚持我们的类比),但不修改实例(因此没有Account变量更改 - 没有像Account.x = y //其中y来自另一个类) ,我认为这仍然是静态的?因此,不是参数是一个问题或它们来自哪里,它们是做什么的?

如果它是一个属性,同样的原则适用于决定使一个字段静态或不是(如果字段持有的数据将是昂贵的,然后有一个字段持有它 - 静态 - 如果我错了纠正我).

我注意到在C#上有超过100个静态方法的线程(这是一个静态的方法,因为它处理参数),我将阅读所有这些,因为有很好的问题和好的答案.

谢谢

Abb*_*ner 6

听起来你想让这个类不可变,而不是静态?

下面是Nutshell中C#3的静态类的定义:"一个类可以标记为静态,表明它必须仅由静态成员组成,不能被子类化.System.Console和System.Math类是很好的例子.静态类."

对于帐户,我假设您希望系统中的每个帐户都有一个单独的帐户实例.所以我认为你不希望它是静态的.