gpt4 book ai didi

c# - 在该类的静态方法中创建该类的实例是否干净?

转载 作者:行者123 更新时间:2023-12-05 04:48:30 25 4
gpt4 key购买 nike

我在其中有一个非静态类和一个静态方法。到目前为止毫无疑问。但是我在静态方法中创建了同一个类的实例。我不确定它是否会创建循环引用。我在 Debug模式下运行它以查看任何意外行为,但没有。不过,我想确认一下。在同一个类的静态方法中创建一个类的实例是否可以?这是一个坏习惯吗?

public class DownloadHelper
{
//fields, properties

public DownloadHelper()
{
// some code
}

public async Task<bool> HttpCalls()
{
await Task.Delay(1000);
return true;
}

public static async void GetPreparedInAdvance()
{
var helper = new DownloadHelper();
var success = await helper.HttpCalls();
// some more codes
}
}

// Is it ok to call like this?
DownloadHelper.GetPreparedInAdvance();

// little later,
DownloadHelper.GetPreparedInAdvance();

最佳答案

没有问题,这段代码做的是常规的。

使用静态方法创建对象实例:

这是我称之为静态运行方法模式*的变体:

  • 它在每次调用时创建该类的一个对象实例,或者如果是单例则可以是唯一的,
  • 它执行这个实例:显示一个表单,或者从网络下载一个文件,等等,
  • 它返回一个结果,或不返回:对话框或文件的结果,等等。

在这种模式下,构造函数通常是私有(private)的以确保一致性。


*我还没有研究标准design patterns

关于c# - 在该类的静态方法中创建该类的实例是否干净?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68052751/

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