2017-09-26 12 views
-1

私は初心者のC#devで、何かを忘れています。 (!ValidateCleared(actionsChecked))コードがオペレータを投げてエラーになりました! voidには適用できません。この例でこれを修正する方法がわかりません。私はそれをboolにして休憩を使用しようとしましたが、アクションは期待どおりに動作しませんでした。それは1つの行動だけをチェックしました。ボタン内のvoid呼び出しにオペレータを修正するにはどうすればよいですか?

protected void btnSubmit_Click(object sender, EventArgs e) 
{ 
    ValidateActionSelected();enter code here 
    ValidateCleared(actionsChecked); 

    if (!ValidateCleared(actionsChecked)) 
    { 
     if (String.Equals(ddlActionsAndDocuments.SelectedItem.Text.ToString(), "XXX YYY") || String.Equals(ddlActionsAndDocuments.SelectedItem.Text.ToString(), "XXX ZZZ")) 
     { 
      reqEffectiveDate.ErrorMessage = ""; 
     } 

     if (ddlActionsAndDocuments.SelectedValue == ActionTypes.XXXYYY || 
      ddlActionsAndDocuments.SelectedValue == ActionTypes.XXXYYYDenial || 
      ddlActionsAndDocuments.SelectedValue == ActionTypes.XXXzzz) 
     { 
      ValidateXXXYYY(actionsChecked, ddlActionsAndDocuments.Text); 
     } 

     if (ddlActionsAndDocuments.SelectedValue == InsuranceActionTypes.WWW || 
      ddlActionsAndDocuments.SelectedValue == InsuranceActionTypes.YYYZZZ || 
      ddlActionsAndDocuments.SelectedValue == InsuranceActionTypes.YYYWWW || 
      ddlActionsAndDocuments.SelectedValue == InsuranceActionTypes.YYYWaived) 
     { 
      ValidateCertificate(actionsChecked, ddlActionsAndDocuments.Text); 
     } 
    } 
} 

private void ValidateCleared(List<xxCaseEntity> actionsChecked) 
{ 

    //bool error = false; 

    foreach (xxCaseEntity ACTIONyy in actionsChecked) 
    { 
     if (ACTIONyy.XXStatusCode == 40 || ACTIONyy.XXStatusCode == 45) 
     { 
      //error = true; 
      DisplayErrorMessage("FR Action Cannot Apply to " + ACTIONyy.CaseIdentifier); 

      actionsChecked.Remove(ACTIONyy); 
      //break; 
     } 

    } 
    return; 

    //return error; 
} 
+0

を下回っています「無効」よりも。宣言された戻り値の型を変更し、 'ValidateCleared()'のコードを変更して、メソッドの各パスでtrueまたはfalseを返します。 –

+0

ValidateClearedメソッドでコードのコメントを解除します。 – Joe

+0

boolメソッドは正常に動作します。しかし、他の機能のために私はそれを空に戻す必要があります。 –

答えて

-2

あなたは `ValidateClearedを(使用したい場合は、固定コードは、それがむしろvoid``より `bool`を返すかのように、`、それは実際にはかなり `bool`を返す作ってみてください)

protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
     ValidateActionSelected();enter code here 
     ValidateCleared(actionsChecked); 

     if (!ValidateCleared(actionsChecked)) 
     { 
      if (String.Equals(ddlActionsAndDocuments.SelectedItem.Text.ToString(), "XXX YYY") || String.Equals(ddlActionsAndDocuments.SelectedItem.Text.ToString(), "XXX ZZZ")) 
      { 
       reqEffectiveDate.ErrorMessage = ""; 
      } 

      if (ddlActionsAndDocuments.SelectedValue == ActionTypes.XXXYYY || 
       ddlActionsAndDocuments.SelectedValue == ActionTypes.XXXYYYDenial || 
       ddlActionsAndDocuments.SelectedValue == ActionTypes.XXXzzz) 
      { 
       ValidateXXXYYY(actionsChecked, ddlActionsAndDocuments.Text); 
      } 

      if (ddlActionsAndDocuments.SelectedValue == InsuranceActionTypes.WWW || 
       ddlActionsAndDocuments.SelectedValue == InsuranceActionTypes.YYYZZZ || 
       ddlActionsAndDocuments.SelectedValue == InsuranceActionTypes.YYYWWW || 
       ddlActionsAndDocuments.SelectedValue == InsuranceActionTypes.YYYWaived) 
      { 
       ValidateCertificate(actionsChecked, ddlActionsAndDocuments.Text); 
      } 
     } 
    } 

    private bool ValidateCleared(List<xxCaseEntity> actionsChecked) 
    { 
     List<xxCaseEntity> removeItems = new List<xxCaseEntity>(); 
     foreach (xxCaseEntity ACTIONyy in actionsChecked) 
     { 
      if (ACTIONyy.XXStatusCode == 40 || ACTIONyy.XXStatusCode == 45) 
      { 
       DisplayErrorMessage("FR Action Cannot Apply to " + ACTIONyy.CaseIdentifier); 

       //actionsChecked.Remove(ACTIONyy); 
       removeItems.Add(ACTIONyy); 
      } 
     } 
     foreach(xxCaseEntity ACTIONyy in removeItems) 
     { 
      actionsChecked.Remove(ACTIONyy); 
     } 
     return true; 
    } 
+1

あなたのバージョンはコンパイルされません。 –

関連する問題