在公共(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/