3つのオーバーロードされたメソッドを持つクラスがあります。たとえば、次のようなものがあります。
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); }
}
このクラスを他の(親)クラスのプライベートフィールドにしたいのですが、これら3つのメソッドにアクセスできる必要があります。今のところ、私はちょうどしました:
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); }
}
1つの短い方法としてそれを実装する方法はありますか?次のようになります。
public void myMethod(unknownListOfArgumentsOfDifferentTypes args)
{ myObject.myMethod(args); }
使ってみましpublic void myMethod(params object[] something)
たがうまくいきませんでした。それは可能ですか、それともすべてのメソッドを別のメソッドに「投影」する必要がありますか?
編集:子クラスにはさまざまなメソッドとフィールドがあり、親クラスのみがアクセスできるようにしたいと考えています。だから私は親にそれを引き継がせたくないのです。説明しませんでしたが、子クラスにこれら3つのメソッドしか含まれていないように見えた場合は申し訳ありません。これらは、親クラスのパブリックメソッドとしてアクセスできるようにしたいメソッドです。