通过实例化对象访问静态类变量

时间:2015-04-16 15:11:50

标签: c#

所以我遇到了一些遗留的C#代码,其中包含一些带有一些静态变量的类。

public class TMP_PARAM
{
    // stores params and signals of test
    public static List<filter> data_p;
    public static List<filter> data_p_save;
    public static List<filter> data_s;
    public static List<filter> data_s_save;
    public List<filter> data_operation_p
    {
        get
        {
            return data_p;
        }
        set
        {
            data_p = value;
        }
    }

然而,当他们有数据时,我感到很困惑,即使代码中没有设置它们,即:

Automobile.Drive();
int i = Automobile.NumberOfWheels;

我发现变量是由不同的对象通过set calls

设置的
TMP_PARAM tmp = new TMP_PARAM();
tmp.data_operation_p = cast_list;

我的问题是为什么C#编译器允许这样做?不应该通过类接口访问静态类变量吗?

1 个答案:

答案 0 :(得分:0)

您将access modifiersstatic混淆。代码将它们标记为public,因此可以从外部访问它们。将它们标记为private,然后初始化必须在class定义内。