【发布时间】:2015-11-18 10:53:29
【问题描述】:
我已经看到很多答案说这不存在,出于各种原因 - 其中很多是有道理的。
然而,对于我的用例,我觉得我正在做的事情确实有意义,因此从逻辑上讲应该有一种方法来做到这一点......
我想要一系列静态类,每个类都有 3 个方法。 each 的第一个方法对每个类都是唯一的,但后两个方法只是第一个方法的转换;即
public static class A{
public static double[][] x(...){...}
public static double[][] y(...){//calls x in here and operates on output}
public static double[][] z(...){//also calls x in here and operates on output}
}
public static class B{
public static double[][] x(...){...} //different
public static double[][] y(...){} //identical to A.y, but calls B.x inside.
public static double[][] z(...){} //identical to A.Z, but calls B.x inside.
}
public static class C{
public static double[][] x(...){...}
public static double[][] y(...){} //identical to A.y, but calls C.x inside.
public static double[][] z(...){} //identical to A.Z, but calls C.x inside.
}
我更希望有一种方法来定义静态函数y 和z,然后只需为我将实际使用的每个类定义x。
类本质上只是不同方法的容器,它们本质上是相同的,但具有不同的底层功能。
有没有办法在没有大量样板的情况下做到这一点?
【问题讨论】:
-
如何让这个类成为非静态类并使用单例模式?
-
“所以逻辑上应该有办法做到这一点......” - 不,这是一个错误的假设。仅仅因为它有意义,它就不一定是可能的。我认为您所追求的是单例模式。
-
编写一个接受委托的方法(调用
x())并使用不同的委托从A.y、B.y和C.y调用此方法。例如。B.y()将使用B.x调用它。 -
“我想要一系列的静态类,每个有3个方法。” => 为什么这些方法和类都需要
static? “我想要”不是技术要求。 -
有很多方法可以解决这个问题。这取决于具体情况。显示实际示例。你打算如何使用这些静态类?
标签: c# inheritance static