0
私は、次のしている:オプションのパラメータでデリゲートを呼び出す方法は?
var availableDelegates = new Dictionary<string, SampleHandler>{
{"TestWithNoParams", SampleHandlerOne }, // this is what I have now - working
{"TestWithParamSetA", SampleHandlerTwo } // need this
{"TestWithNoParams", SampleHandlerTwo } // and this - working
}
public static SampleHandler SampleHandlerOne(){
// do stuff - working
}
// v1
public static SampleHandler SampleHandlerTwo(){
// do stuff without parameters - working
}
// v2
public static SampleHandler SampleHandlerTwo(HandlerTwoParams params = null) { // trying to update to support optional params
// do stuff with parameters - not working
// params.Foo = bar
}
私がデリゲートにオプションのパラメータを渡すことができますどのように?アイデアは、私にできることを次のようになります。
if (someCondition)
availableDelegates[target].Invoke(optionalParams);
else
availableDelegates[target].Invoke();
SampleHandlerはオプションパラメータを持っていません。だからこれはうまくいかない。 –
@HansPassant - そのため、コードに 'v1'と' v2'があります。 – SB2055