【C#】デリゲート(delegate) 使用例 第三弾
1−0
void RewardTTP(string Id) { **.Instance.GiveRewards (Id, delegate(int errorCode) { ClaimItem (errorCode); }); } void ClaimItem (int errorCode) { if (errorCode == 0) { EventManager.OnUpdateNotif (true, ""); **.Achievement.ShowAchievementResultView (); } else if (errorCode == 204) { //Reward Redeemed EventManager.OnUpdateNotif (false, "You Already Claimed This Item"); } else if (errorCode == -1) { //Time Out EventManager.OnUpdateNotif (false, "Check Your Connection"); } }
2
public void GiveRewards(string Id, Action<int> callback){ callback(0); }
int型のアクションを呼ぶ。callback(0);の形で返す。
1−1
void RewardTTP(string Id) { **.Instance.GiveRewards (Id, delegate(int errorCode) { if (errorCode == 0) { EventManager.OnUpdateNotif (true, ""); **.Achievement.ShowAchievementResultView (); } else if (errorCode == 204) { //Reward Redeemed EventManager.OnUpdateNotif (false, "You Already Claimed This Item"); } else if (errorCode == -1) { //Time Out EventManager.OnUpdateNotif (false, "Check Your Connection"); } }); }