c# - 静态变量是否在所有实例之间共享?

标签 c# .net c#-4.0

在公共(public)类(class)中,我有一个私有(private)静态字典。由于 Dictionary 是静态的,这是否意味着它在同一对象的所有其他实例之间共享(请参见下面的示例)。

public class Tax
{
    private static Dictionary<string, double> TaxBrakets = new Dictionary<string, double>(StringComparer.OrdinalIgnoreCase)
    {
        { "Individual",   0.18 },
        { "Business",     0.20 },
        { "Other",        0.22 },
    };

    public string Type { get; set; }
    public double ComputeTax(string type, double d)
    {
        return d * TaxBrakets[this.Type];
    }
}

以这种方式使用字典(作为静态变量)是否可以接受?

最佳答案

您的静态变量 TaxBrakets 未与实例相关联。 this.TaxBrakets 无法编译。所有出现的 TaxBrakets 都将引用同一个字典。一般来说,使用静态字典是完全可以接受的。虽然这种特殊用法看起来有点滑稽,但我需要查看更多代码以提出任何更改建议。

关于c# - 静态变量是否在所有实例之间共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5956825/

相关文章:

c# - 我们可以创建一个不像现场的事件吗?

c# - 检查 Linq 路径中空值的更好方法

.net - 从公钥+私钥创建一个 RSAParamaters 对象

c# - 自定义验证唯一属性 - 泛型类

c# - 使用 MsBuild 4.0 编译的程序集是否与只有 .NET 3.5 的计算机兼容?

asp.net-mvc-3 - 企业中业务实体验证的首选方法

c# - WPF IValueConverter - 将多个值转换为单个值

c# - visual studio 输出窗口不显示

.net - 使用 OpenID 的 SSO

c# - 运行多个 C# 任务异步