当前位置:  开发笔记 > 程序员 > 正文

为什么dotnet的char.IsLower()是静态方法?

如何解决《为什么dotnet的char.IsLower()是静态方法?》经验,为你挑选了1个好方法。

这似乎与每个设计指南背道而驰.接受类型T的单个参数的静态方法通常应该只是一个成员方法.

这真是太棒了我实际上不得不发布一个StackOverflow问题来理解IsUpper是否存在(因为它没有出现在自动完成中)

编辑

我理解我之前的陈述需要一点解释.良好设计的一个例子是String.ToLower().它不是原型为静态void ToLower(String foo),而是一个成员方法.很明显(对我来说)同样应该适用于char.IsLower().



1> Pop Catalin..:

结构上的实例方法不是线程安全的.另一方面静态方法.

静态方法接收结构的副本,实例方法接收托管指针.通过指针访问数据不是一种安全操作,很容易导致竞争条件.

这就是为什么结构/基元上的大多数方法都是静态的而不是实例的原因.

这里有一个类似的问题.

为什么IsNan是Double类的静态方法而不是实例属性?

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有