【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");
	}
}

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");
	}
	});
}