gpt4 book ai didi

c# - 这个静态类会在多用户场景中中断吗?

转载 作者:行者123 更新时间:2023-11-30 21:17:53 25 4
gpt4 key购买 nike

假设我使用扩展方法创建了一个静态类:

public static class MyStaticExtensionClass
{
private static readonly Dictionary<int, SomeClass> AlgoMgmtDict
= new Dictionary<int, SomeClass>();

public static OutputClass ToOutput(this InputClass input)
{
// clears up the dict
// does some kind of transform over the input class
// return an OutputClass object
}
}

在多用户系统中,状态管理字典是否会无法为转换算法提供正确的值?常规类是更好的设计还是将 Dictionary 放入方法中是更好的设计?

最佳答案

您的词典只有三种情况可用:必须共享,或者不能共享,或者您不知道或关心

如果它必须 共享,您将必须实现适当的锁定。但是由于您在 ToOutput() 中做的第一件事是清除字典,因此共享它不会给您带来很多好处。

因此,我们只剩下两种情况(不得共享,或者不知道或不关心),在这两种情况下最好将字典隔离在 ToOutput() 内的局部变量中:

public static OutputClass ToOutput(this InputClass input)
{
Dictionary<int, SomeClass> algoMgmtDict = new Dictionary<int, SomeClass>();
// Dictionary starts up empty, no need to clear anything.

// Do some kind of transform over the `input` object.
// Return an OutputClass instance.
}

关于c# - 这个静态类会在多用户场景中中断吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4569044/

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