从 C# 背后的代码中的另一个方法调用方法
本文关键字:方法 另一个 调用 代码 背后 | 更新日期: 2023-09-27 18:32:10
我需要从另一个方法调用btn_submit_Click(object sender, EventArgs e)
protected void Timer1_Tick(object sender, EventArgs e)
通常通过单击按钮调用。
现在在Timer1_Tick
比较一个时间,如果当前时间超过,我需要自动调用btn_submit_Click(object sender, EventArgs e)
。
protected void Timer1_Tick(object sender, EventArgs e)
{
DateTime et = DateTime.Parse(Session["endtime"].ToString());
if (DateTime.Now.TimeOfDay >= et.TimeOfDay)
{
// btn_submit_Click();
Response.Redirect("Welcome.aspx");
}
else
{
Label1.Text = DateTime.Now.ToLongTimeString();
}
}
请告诉我一种方法。
就个人而言,我会采取稍微不同的方法。你实际上并不是想说一个按钮被点击了 - 你只是对与按钮点击相同的副作用感兴趣。因此,提取仅具有相关参数(可能没有任何参数)的第三种方法,并从btn_submit_Click
和Timer1_Tick
调用该方法。这样,您就不必为没有发生的按钮单击提出sender
和EventArgs
。所以例如:
protected void btn_submit_Click(object sender, EventArgs e)
{
// Maybe validation?
Submit();
}
protected void Timer1_Tick(object sender, EventArgs e)
{
DateTime et = DateTime.Parse(Session["endtime"].ToString());
if (DateTime.Now.TimeOfDay >= et.TimeOfDay)
{
Submit();
Response.Redirect("Welcome.aspx");
}
else
{
Label1.Text = DateTime.Now.ToLongTimeString();
}
}
private void Submit()
{
// Common code to execute on either the timer tick or button click
}
Jon Skeet提到了正确的方法。将btn_submit_click
中的代码重构为可由 Button 和计时器调用的中心方法。但你仍然可以做submit_click(sender, e)
protected void Timer1_Tick(object sender, EventArgs e)
{
....
btn_submit_Click(sender, e);
...
}