2015-06-19 60 views
-2

我想从find_output()调用chk_condition()功能,但问题在于控件不是从find_output()函数移动到chk_condition()函数。可能的错误是什么?如何控制从一个功能到另一个功能的流程

private void find_output(string a) 
{ 
    string[] separators = new string[] { "\n" }; 
    foreach (string sent in a.Split(separators) 
    { 
     listBox8.Items.Clear(); 
     string sentence = sent.Replace("\r", ""); 
     if (sentence != "") 
     { 
      int s = sentence.Count(); 
      string[] separators1 = new string[] { " " }; 

      foreach (string word in sentence.Split(separators1)) 
      { 
       listBox8.Items.Add(word); 
      } 
      int word_count = listBox8.Items.Count; 
      chk_condition(sentence); 
      if (condition_satisfy == i) 
       textBox6.Text = textBox6.Text + Environment.NewLine + sentence; 
     } 
    } 
} 

private void chk_condition(string a) 
{ 
} 
+1

对于初学者,您在第二个foreach循环中缺少一个右括号')' – Nikola

+0

实际上是否收到错误消息或者您没有看到预期的行为?如果你没有看到预期的行为,那么我很好奇你是否正在使用调试器遍历代码,因为你的方法'chk_condition'什么都不做。我也看不到'condition_satisfy'在哪里声明。 –

+0

不仅''condition_satisfy'没有声明,而且'''也没有被分配。他们是否是阶级变量? – joehanna

回答

0

假设你的代码编译 - 因为目前有一些明显的错误** - 可以调试find_output方法来检查为什么从不执行chk_condition。其中一个原因可能是字符串a为空,或者在达到chk_condition之前程序中断。

我假设你正在使用Visual Studio。为了调试:

  1. find_output开头设置一个断点(F9)。
  2. 在调试模式下启动您的应用程序(F5)。
  3. 当遇到断点时,请按照步骤(F10)逐行查看代码的执行方式。
  4. 在调试用鼠标悬停在变量来看看它们的当前值(或使用如观察窗口(按Ctrl + dW¯¯)。
  5. 如果您sentence字符串不是空的,否则最终会达到chk_condition。使用步骤内侧(F11)看时所执行的方法。

**遗失在第一foreach循环关闭托架。神秘i可变 - 是否在任何地方初始化?它有价值吗?

相关问题