1
私は、DataSetを返すメソッドがいくつかあるクラスFooを持っています。私はFunc<DataSet> process
を、呼び出したメソッドが知らないFooのインスタンスに対して要求されたメソッドを呼び出すことができるメソッドに渡すことができるようにします。このような何か:オブジェクトインスタンスを知らないFuncを渡す
DataSet ds1 = CommonMethod(GetDataSetForX);
DataSet ds2 = CommonMethod(GetDataSetForY);
のようなもので呼び出さ
DataSet CommonMethod(Func<DataSet> process)
{
Foo foo = GetFooFromSomewhere();
return foo.process(); // <-- obviously, not this way!
}
。
[注:私はFooのを所有していない - 私はそれに変更を加えることはできません]:
DataSet CommonMethod(Func<Foo, DataSet> process)
{
Foo foo = GetFooFromSomewhere();
return process(foo);
}
// call it like this:
DataSet ds1 = CommonMethod(f => f.GetDataSetForX());
DataSet ds2 = CommonMethod(f => f.GetDataSetForY());
しかし、正直なところ、あなたの簡単な例では、Iドン
ありがとうございます。この例は単純化されているため、利点があります。 CommonMethodには実際には、DataSetの取得の前後に重複してコードがたくさんあります。 –