gpt4 book ai didi

c# - 在 Web 应用程序中使用静态方法的好处

转载 作者:行者123 更新时间:2023-11-30 15:06:45 25 4
gpt4 key购买 nike

我注意到在我们用于很多网页的自定义基类中,我们有一些静态方法。由于该类被用作网页的基类,因此将方法设为静态会有什么好处?我想除了想要验证之外别无他法。

同样在自定义基类中,我们有一些属性可以调用另一个类库中我们的管理器类中的其他静态方法,并返回 DataTable 或 HashTable。我可以看到开发人员在哪里进行编码的便利因素,但除此之外,他们还有什么理由将方法设为静态吗?

所以现有代码看起来像这样:

public class CustomBaseClass
protected Hashtable displayText
{
get{
if(_displayText == null)
displayText = MyManager.GetCustomersList(sCustID);

由于 GetCustomersList 是静态的,此方法中的每个方法也必须是静态的。一直到我们的数据访问层。以这种方式编码对我来说似乎很奇怪,但很好奇你们的想法。

为我们的应用程序编写代码的老开发人员已经不在了,他们到处都在使用它们。他们是否对使用静态方法有任何负面影响或提防,尤其是在 asp.net 应用程序中?

如果我创建一个单例不是更有意义,那么我就不必将所有方法调用都直接到我们的 DAL 静态吗?哈哈

最佳答案

使方法静态化的主要原因通常是它不依赖于类的任何实例成员。这避免了必须创建该类的新实例来调用该方法,而该方法随后需要进行垃圾回收。

静态方法和实例方法显然都有它们的位置。通常,我为实用程序方法创建静态方法,这些方法从静态成员(当然您必须同步)或参数获取所有状态,或者为类的所有实例设置类范围的属性。

当然,您可以使用单例(尽管有些人讨厌它们),或者您可以只在最高级别的类中创建 DAO 对象并进一步向下注入(inject)。

使用静态方法的主要问题是,虽然对静态方法进行单元测试非常容易,但模拟调用静态 DAO 类的结果可能会更加困难。如果它是注入(inject)的实例,则模拟起来要容易得多。

关于c# - 在 Web 应用程序中使用静态方法的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7338275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com