C# 如何仅在调用时运行方法?
下面我有一堆代码。但是,我遇到了一些错误,因为方法Move()和Genius()运行的逻辑太多。我只想在submit click方法调用两个方法时运行它们。我该怎么做C# 如何仅在调用时运行方法?,c#,silverlight,xaml,methods,C#,Silverlight,Xaml,Methods,下面我有一堆代码。但是,我遇到了一些错误,因为方法Move()和Genius()运行的逻辑太多。我只想在submit click方法调用两个方法时运行它们。我该怎么做 namespace ShotgunApp { public partial class SingleGame : PhoneApplicationPage { public static class AmmoCount { public static int
namespace ShotgunApp
{
public partial class SingleGame : PhoneApplicationPage
{
public static class AmmoCount
{
public static int userAmmo = startVars.startAmmo;
public static int geniusAmmo = startVars.startAmmo;
}
public static class Global
{
public static int lives = 1;
public static string GeniusMove;
public static string UserMove;
}
public SingleGame()
{
InitializeComponent();
GeniusAmmo.Text = "ammo: " + AmmoCount.geniusAmmo;
UserAmmo.Text = "ammo: " + AmmoCount.userAmmo;
}
private void submit_Click(object sender, RoutedEventArgs e)
{
if (((String)submit.Content) == "Submit")
{
Move();
submit.Content = "Wait for Genius...";
uReload.IsEnabled = false;
uFire.IsEnabled = false;
uShield.IsEnabled = false;
Genius();
}
else if (((String)submit.Content) == "Go!")
{
GeniusSpeak.Text = "";
OutcomeDesc.Text = "You have " + Move() + " and Genius has " + Genius();
Outcome.Text = "ANOTHER ROUND...";
submit.Content = "Continue";
}
else if (((String)submit.Content) == "Continue")
{
uReload.IsEnabled = true;
uFire.IsEnabled = true;
uShield.IsEnabled = true;
OutcomeDesc.Text = "";
Outcome.Text = "";
submit.Content = "Submit";
}
}
public string Move()
{
if (uReload.IsChecked.HasValue && uReload.IsChecked.Value == true)
{
UserAmmo.Text = "ammo: " + ++AmmoCount.userAmmo;
Global.UserMove = "reloaded";
}
else if (uShield.IsChecked.HasValue && uShield.IsChecked.Value == true)
{
Global.UserMove = "shielded";
}
else if (uFire.IsChecked.HasValue && uFire.IsChecked.Value == true)
{
UserAmmo.Text = "ammo: " + --AmmoCount.userAmmo;
Global.UserMove = "fired";
}
else
{
submit.Content = "Enter a move!";
}
return Global.UserMove;
}
public string Genius()
{
GeniusSpeak.Text = "Genius has moved";
submit.Content = "Go!";
Random RandomNumber = new Random();
int x = RandomNumber.Next(0, 3);
if (x == 0)
{
Global.GeniusMove = "reloaded";
GeniusAmmo.Text = "ammo: " + ++AmmoCount.geniusAmmo;
}
else if (x == 1)
{
Global.GeniusMove = "shielded";
}
else if (x == 2)
{
Global.GeniusMove = "fired";
GeniusAmmo.Text = "ammo: " + ++AmmoCount.geniusAmmo;
}
return Global.GeniusMove;
}
}
}
将最后的结果存储在数据成员中:
private string lastMoveResult = string.Empty;
private string lastGeniusResult = string.Empty;
private void submit_Click(object sender, RoutedEventArgs e)
{
if (((String)submit.Content) == "Submit")
{
lastMoveResult = Move();
submit.Content = "Wait for Genius...";
uReload.IsEnabled = false;
uFire.IsEnabled = false;
uShield.IsEnabled = false;
lastGeniusResult = Genius();
}
else if (((String)submit.Content) == "Go!")
{
GeniusSpeak.Text = "";
OutcomeDesc.Text = "You have " + lastMoveResult + " and Genius has " + lastGeniusResult ;
Outcome.Text = "ANOTHER ROUND...";
submit.Content = "Continue";
}
将最后的结果存储在数据成员中:
private string lastMoveResult = string.Empty;
private string lastGeniusResult = string.Empty;
private void submit_Click(object sender, RoutedEventArgs e)
{
if (((String)submit.Content) == "Submit")
{
lastMoveResult = Move();
submit.Content = "Wait for Genius...";
uReload.IsEnabled = false;
uFire.IsEnabled = false;
uShield.IsEnabled = false;
lastGeniusResult = Genius();
}
else if (((String)submit.Content) == "Go!")
{
GeniusSpeak.Text = "";
OutcomeDesc.Text = "You have " + lastMoveResult + " and Genius has " + lastGeniusResult ;
Outcome.Text = "ANOTHER ROUND...";
submit.Content = "Continue";
}
您只需从
submit>中调用Move
和Genius
,然后单击
。问题是什么?“我只想在submit click方法调用两个方法时运行它们。”-除非我误解了该语句;那就别从别的地方打电话给他们。。。我遗漏了什么?但我只是从submit_Click中调用它们,当程序流到达那里时,它们仍然自己运行。我只想在单击submit时运行它们。如果这是您的全部代码,那么您可能不了解“程序流”-如果不调用方法,则不会运行这些方法。您是否知道这outcomesc.Text=“you have”+Move()+“Genius have”+Genius()
也将运行这些方法?您只需从submit\u单击调用Move
和Genius
。问题是什么?“我只想在submit click方法调用两个方法时运行它们。”-除非我误解了该语句;那就别从别的地方打电话给他们。。。我遗漏了什么?但我只是从submit_Click中调用它们,当程序流到达那里时,它们仍然自己运行。我只想在单击submit时运行它们。如果这是您的全部代码,那么您可能不了解“程序流”-如果不调用方法,则不会运行这些方法。您是否知道这outcomesc.Text=“you have”+Move()+“Genius have”+Genius()代码>是否也将运行这些方法?