[英]C#: How do I call a static method of a base class from a static method of a derived class?
[英]C# Call an instance method of parent class from a static method in a secondary static class
我有一个从类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;
}
}
我已经阅读了有关单例模式的信息,但我看不出这对我有什么帮助。 任何建议或意见,将不胜感激。 谢谢。
您可以保留B
的静态实例并使用它吗?
public static class C
{
static B _theB = new B();
public static double GetValue()
{
double result = 0;
result = _theB.TMA();
return result;
}
}
TMA到底在做什么? 它是否涉及特定的A(或B)对象?
您的第三次尝试似乎是最正确的(取决于您的调用方式) GetValue()
。 但是准确了解它“没有起作用”是有帮助的。 (它崩溃了吗?编译失败?错误消息是什么?)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.