我正在为我的编程类制作一个WP7-app,我想实现一个回调函数来检查一个整数的状态,而不是调用该函数来显式检查它。整数在按下按钮时迭代,当它达到最大输入时,我希望有一个回调函数检查这个,但我不完全确定如何实现它。
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");
}
}
}
在我增加current_input之后,我现在显式地调用显示结果,而不是为此创建一个回调函数。
答案 0 :(得分:0)
您无法在整数上放置回调函数,但是,您可以将整数作为属性公开,并从属性setter中调用函数。看看这个例子:
private int _myInteger = 0;
private int MyInteger {
get
{
return _myInteger;
}
set
{
_myInteger = value;
if (_myInteger <= MAX_INPUT)
MyCallBackFunction();
}
}
private void Right_Button_Click(object sender, RoutedEventArgs e)
{
MyInteger = MyInteger + 1;
// Do your other stuff here
}
private void MyCallBackFunction()
{
// This function executes when your integer is <= MAX_VALUE
// Do Whatever here
display_result();
}
这样做是通过私有属性公开你的整数。只要通过setter设置属性(例如使用MyInteger = MyInteger + 1;
语法),就可以让你的setter检查条件并执行你的回调函数。