属性超出C#函数范围

时间:2013-11-11 15:29:17

标签: c# scope

我有以下问题: 我有2个类,比如我在主类中创建的class1和class2。 我在class2代码中尝试访问class1属性GetFieldValue,它有一个get方法。 我试着这样做:

int fieldName;  
fieldName = main.class1.GetFieldValue;

编译器告诉我:     非静态字段,方法或属性....

需要对象引用

有没有办法做那样的事情? 我希望我一直很清楚:)

1 个答案:

答案 0 :(得分:3)

有很多方法可以抚养这只猫;但我建议只将Class1的实例注入Class2,如下所示:

private Class1 _c1;

public Class2 (Class1 c1)
{
    _c1 = c1;
}

然后是:

_c1.GetFieldValue

请注意,GetFieldValue需要publicinternal才能访问它。

现在,当您创建Class2时,您可以这样做:

var c2 = new Class2(c1);

其中c1Class1的实例。