我有一个类,它有三个重载方法。比方说,有:
class MyChildClass
{
public void myMethod(int i)
{ /* do something with i */ }
public void myMethod(int a, string b)
{ /* get i from a and b and call: */ myMethod(i); }
public void myMethod(string c, string d)
{ /* get i from c and d and call: */ myMethod(i); }
}
现在我希望这个类成为其他(父)类中的私有字段,但我需要这三种方法可以访问。现在,我刚刚做了:
class MyBaseClass
{
private MyChildClass myObject = new myChildClass(); // or similar
public void myMethod(int i)
{ myObject.myMethod(i); }
public void myMethod(int a, string b)
{ myObject.myMethod(a, b); }
public void myMethod(string c, string s)
{ myObject.myMethod(c, d); }
}
有没有办法将它作为一种短方法来实现?看起来像:
public void myMethod(unknownListOfArgumentsOfDifferentTypes args)
{ myObject.myMethod(args); }
我尝试使用public void myMethod(params object[] something)
但没有用。有可能,还是我必须将每种方法“投影”到另一种方法中?
编辑:子类有各种方法和字段,我希望仅父类可以访问它们。这就是为什么我不希望父母继承它。我没有解释,对不起,如果它看起来像子类只包含这三个方法。这些是我希望作为父类的公共方法访问的方法。