これまで同様の質問を投稿していましたが、別のメソッドにメソッドを渡すときにパズルが欠けていることがわかりました。私の質問は、パラメータとしてメソッドを渡すときにどのようにパラメータを含めることができますか?私は以下の例を含んでいます。メソッドを別のメソッドにパラメータとして渡しますが、パラメータを使用します。
ご迷惑をおかけして申し訳ございません。
多くのおかげで、
サービスコール
private readonly MemberRepo _memberRepo;
public SomeService()
{
_memberRepo = new MemberRepo();
}
public string GetMembers(int id)
{
// This works, i.e. the RunMethod internally calls the Get method on the repo class - problem: how can I pass the id into the repo Get method?
var result = RunMethod(_memberRepo.Get);
...
return stuff;
}
private string RunMethod(Func<int, string> methodToRun)
{
var id = 10; // this is a hack - how can I pass this in?
var result = methodToRun(id);
..
}
リポジトリ
public class MemberRepo
{
public string Get(int id)
{
return "Member from repository";
}
}
更新
private string RunMethod(Func<int, string> methodToRun)
{
if(id.Equals(1))
{
// Do something
//
var result = methodToRun(id);
..
}
oh right!愚かな私、私はRunMethod(_memberRepo.Get(id))と戦ってきた – Jamie