这似乎违背了每一个设计准则。
接受 T 类型的单个参数的静态方法通常应该只是一个成员方法。
这太奇怪了我实际上不得不发布一个StackOverflow问题 https://stackoverflow.com/questions/389100/is-there-a-built-in-islowercase-in-net了解 IsUpper 存在(因为它没有出现在自动完成中)
Edit
我知道我之前的陈述需要一些解释。 String.ToLower() 就是一个良好设计的例子。它不是被原型化为 static void ToLower(String foo),而是一个成员方法。很明显(至少对我来说),char.IsLower() 也应该如此。
结构体的实例方法不是线程安全的。
另一方面静态方法are.
静态方法接收结构的副本,实例方法接收托管指针。通过指针访问数据并不是一种安全操作,并且很容易导致竞争条件。
这就是为什么结构/基元上的大多数方法都是静态的而不是实例的。
Se 这里有一个类似的问题。
为什么 IsNan 是 Double 类的静态方法而不是实例属性? https://stackoverflow.com/questions/370859/why-isnan-is-a-static-method-on-the-double-class-instead-of-an-instance-property#370996
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)