为什么Math是静态类,Sha256是非静态的?

同样是对算法的封装,为什么Math是静态类,Sha256就要new 一个。
或者说静态类与费静态类的设计思路有什么不同。
类似的问题:
如果a是个数组,那么对a排序最自然的思路应该是a.sort(),Array.sort(a)就没那么自然了啊。

c#

2个回答

往小了说,是习惯问题,往大了说,当需要的参数比较多,那么用非静态的会显得简洁一点。本身静态和非静态都是可以的。

写程序如同写作文,有人说姥姥,有人说外婆,不是只有一种方式的

Math 类中的方法大部分都是工具方法,传入参数,计算结果。
而 Sha256 算法比 math 中普通方法更复杂一些,它要经过一些列的计算及中间结果。用类成员变量存储,可以避免在拆解方法中传递参数。更方便一些。
静态和非静态的定义,可以根据功能的复杂程度,如果是简单的工具方法,静态方法就可以了。
如果是复杂的功能,封装成类实例方法,通过成员变量共享数据更方便。这也是本人平时编码的依据。
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问