【C#】デリゲートに登録した処理が期待通りに呼び出されない場合の対処方法
期待した処理が呼び出されない
Action onLog = null; Action onClick = null; onClick += onLog; onLog += () => Debug.Log( "ピカチュウ" ); onClick();
Debug.Log( "ピカチュウ" )は呼び出されないonClickにonLogを登録したタイミングでonLogはnullのため
期待した処理が呼び出される
Action onLog = null; Action onClick = null; onClick += () => onLog(); onLog += () => Debug.Log( "ピカチュウ" ); onClick();
Debug.Log( "ピカチュウ" )は呼び出されるonClickにonLogを呼び出す処理を登録しており、
onClickが実行された時に初めてonLogが評価されるため