我有一个继承自A类的公共类B.B类可以访问实例方法TMA()。方法TMA()在A类中实现,我无权访问A.我有一个辅助静态类C,它实现了一个静态方法GetValue()。我需要通过静态GetValue()方法访问实例方法TMA()。一个复杂因素是GetValue()方法被多次调用。
public class B : A
{
...
}
public static class C
{
public static double GetValue()
{
double result = 0;
result = TMA(); // <--- I would like to do this but it does not work.
return result;
}
}
我尝试了以下内容,虽然它编译了,但它会在执行时崩溃程序。可能是程序创建的B类实例太多了,但我不确定。
public static class C
{
public static double GetValue()
{
B b = new B();
double result = 0;
result = b.TMA(); // <--- This did not work.
return result;
}
}
我也尝试通过对象引用访问实例方法TMA(),但这不起作用。
public static class C
{
public static double GetValue(..., B ob)
{
double result = 0;
result = ob.TMA(); // <--- This did not work.
return result;
}
}
我已经阅读了关于单身人士模式的内容,但我不知道这对我有什么帮助。任何建议或意见,将不胜感激。谢谢。
答案 0 :(得分:0)
您可以保留B
的静态实例并使用它吗?
public static class C
{
static B _theB = new B();
public static double GetValue()
{
double result = 0;
result = _theB.TMA();
return result;
}
}
答案 1 :(得分:0)
TMA在做什么?它是否涉及特定的A(或B)对象?
您的第三次尝试似乎是最正确的(取决于您的通话方式)GetValue()
。但确切地知道它“不起作用”将会有所帮助。 (它崩溃了吗?无法编译?错误信息是什么?)