I’m making a WP7-app for my programming class and I want to implement a callback function for checking the state of an integer and not calling the function for checking it explicitly. The integer iterates at the push of a button and when it reaches it’s max input I would like to have a callback function checking this, but I’m not completely sure how to implement it.
private void Right_Button_Click(object sender, RoutedEventArgs e)
{
if (current_input <= MAX_INPUT)
{
user_input[current_input] = 3;
current_input++;
display_result();
}
}
#endregion
void display_result()
{
//will move alot of this to the a result page
DateTime time_end = DateTime.Now;
TimeSpan difference = time_end.Subtract(timer);
time_stamp = difference.ToString();
bool combination_error = true;
if (current_input == 4)
{
for (int i = 0; i < MAX_INPUT; i++)
{
if (user_input[i] != combination[i])
{
combination_error = false;
break;
}
}
if (combination_error)
{
MessageBox.Show("Correct combination The timer is " + time_stamp);
}
else
{
MessageBox.Show("Wrong combination");
}
}
}
It’s after I increment current_input that I now explicitly call display result something I wish not to do and instead create a callback function for it.
You can’t really put a callback function on an integer, however, you could expose your integer as a property and call a function from the property setter. Look at this example:
What this is doing is exposing your integer through a private property. As long as you set the property through the setter (e.g. use the
MyInteger = MyInteger + 1;syntax), you can have your setter check the condition and execute your call back function.