栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

*可以*是静态的C#方法应该是静态的吗?[关闭]

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

*可以*是静态的C#方法应该是静态的吗?[关闭]

这取决于。静态方法实际上有两种:

  1. 静态的方法,因为它们可以是
  2. 静态的方法,因为它们必须

在中小型代码库中,您实际上可以将两种方法互换使用。

如果您有一个属于第一类的方法(可以是静态的),并且需要将其更改为访问类状态,那么找出是否有可能将静态方法转换为实例方法是相对简单的。

但是,在庞大的代码库中,大量的调用站点可能会进行搜索,以查看是否有可能将静态方法转换为非静态方法过于昂贵。很多时候人们会看到呼叫数量,然后说:“好吧。我最好不要更改此方法,而是创建一个满足我需要的新方法”。

这可能会导致:

  1. 很多代码重复
  2. 方法参数数量激增

这两件事都是不好的。

因此,我的建议是,如果您的代码库超过200K LOC,则仅当方法必须是静态方法时,我才将它们设为静态。

从非静态到静态的重构相对容易(只需添加一个关键字),因此,如果您想稍后将可静态化为实际的静态(当您需要实例外部的功能时),则可以。但是,将可能静态的实例化方法进行逆向重构要昂贵得多。

对于大型代码库,最好是在易于扩展方面出错,而不是在思想上纯正方面出错。

因此,对于大型项目,除非需要它们,否则不要将其静态化。对于小型项目,请尽其所能。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/394090.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号