C# 如果字符串为空,则跳过行

C# 如果字符串为空,则跳过行,c#,C#,如果字符串为空,我想跳过一行 我试着这样做: public void ReadPostedData() { Sender = HttpContext.Current.Request.Form["MailFormSubmitter_sender"]; Subject = HttpContext.Current.Request.Form["MailFormSubmitter_subject"]; Message = HttpContext.Current.Re

如果字符串为空,我想跳过一行

我试着这样做:

public void ReadPostedData()
{
    Sender = HttpContext.Current.Request.Form["MailFormSubmitter_sender"];
    Subject = HttpContext.Current.Request.Form["MailFormSubmitter_subject"];        
    Message = HttpContext.Current.Request.Form["Message"];
    PdfMessage = HttpContext.Current.Request.Form["PdfMessage"];

    string IsCheckPDfMailSubmit = HttpContext.Current.Request.Form["IsCheckedPDFMailForm"];
    if (IsCheckPDfMailSubmit == null || IsCheckPDfMailSubmit.Length == 0)

        //string.IsNullOrEmpty(IsCheckPDfMailSubmit);

    return IsCheckPDfMailSubmit == null;

    IsCheckedPDFMailForm = IsCheckPDfMailSubmit.Equals("True", StringComparison.OrdinalIgnoreCase); 

    string v = HttpContext.Current.Request.Form["MailFormSubmitter_includeoverviewpdf"];
    IncludeOverviewPdf = v.Equals("true,false", StringComparison.Ordinal) ? true : false;
    // http://forums.asp.net/t/1314753.aspx

    ApplicantMailNodeSelectors[0] = HttpContext.Current.Request.Form["MailFormSubmitter_applicantemailaddress1"];
    ApplicantMailNodeSelectors[1] = HttpContext.Current.Request.Form["MailFormSubmitter_applicantemailaddress2"];
    ApplicantMailNodeSelectors[2] = HttpContext.Current.Request.Form["MailFormSubmitter_applicantemailaddress3"];
}
return IsCheckPDfMailSubmit == null;
关于这一行:

if (IsCheckPDfMailSubmit == null || IsCheckPDfMailSubmit.Length == 0)
IsCheckedPDFMailForm = IsCheckPDfMailSubmit.Equals("True", StringComparison.OrdinalIgnoreCase); 
如果为空,则不执行此行:

if (IsCheckPDfMailSubmit == null || IsCheckPDfMailSubmit.Length == 0)
IsCheckedPDFMailForm = IsCheckPDfMailSubmit.Equals("True", StringComparison.OrdinalIgnoreCase); 
我试着这样做:

public void ReadPostedData()
{
    Sender = HttpContext.Current.Request.Form["MailFormSubmitter_sender"];
    Subject = HttpContext.Current.Request.Form["MailFormSubmitter_subject"];        
    Message = HttpContext.Current.Request.Form["Message"];
    PdfMessage = HttpContext.Current.Request.Form["PdfMessage"];

    string IsCheckPDfMailSubmit = HttpContext.Current.Request.Form["IsCheckedPDFMailForm"];
    if (IsCheckPDfMailSubmit == null || IsCheckPDfMailSubmit.Length == 0)

        //string.IsNullOrEmpty(IsCheckPDfMailSubmit);

    return IsCheckPDfMailSubmit == null;

    IsCheckedPDFMailForm = IsCheckPDfMailSubmit.Equals("True", StringComparison.OrdinalIgnoreCase); 

    string v = HttpContext.Current.Request.Form["MailFormSubmitter_includeoverviewpdf"];
    IncludeOverviewPdf = v.Equals("true,false", StringComparison.Ordinal) ? true : false;
    // http://forums.asp.net/t/1314753.aspx

    ApplicantMailNodeSelectors[0] = HttpContext.Current.Request.Form["MailFormSubmitter_applicantemailaddress1"];
    ApplicantMailNodeSelectors[1] = HttpContext.Current.Request.Form["MailFormSubmitter_applicantemailaddress2"];
    ApplicantMailNodeSelectors[2] = HttpContext.Current.Request.Form["MailFormSubmitter_applicantemailaddress3"];
}
return IsCheckPDfMailSubmit == null;
但是我得到了以下错误:

错误6由于“Seneca.SfsLib.Connectors.MailFormSubmiterModel.ReadPostedData()”返回void,因此return关键字后面不能跟有对象表达式


那么如何跳过它呢?

如果您想根据
If
语句中的条件退出函数,只需使用
return
当方法将
void
作为返回类型时:

public void ReadPostedData()
{
    Sender = HttpContext.Current.Request.Form["MailFormSubmitter_sender"];
    Subject = HttpContext.Current.Request.Form["MailFormSubmitter_subject"];        
    Message = HttpContext.Current.Request.Form["Message"];
    PdfMessage = HttpContext.Current.Request.Form["PdfMessage"];

    string IsCheckPDfMailSubmit = HttpContext.Current.Request.Form["IsCheckedPDFMailForm"];
    if (IsCheckPDfMailSubmit != null) {
        if(IsCheckPDfMailSubmit.Length > 0){
            IsCheckedPDFMailForm = IsCheckPDfMailSubmit.Equals("True", StringComparison.OrdinalIgnoreCase); 
        }
    }





    string v = HttpContext.Current.Request.Form["MailFormSubmitter_includeoverviewpdf"];
    IncludeOverviewPdf = v.Equals("true,false", StringComparison.Ordinal) ? true : false;
// http://forums.asp.net/t/1314753.aspx

    ApplicantMailNodeSelectors[0] = HttpContext.Current.Request.Form["MailFormSubmitter_applicantemailaddress1"];
    ApplicantMailNodeSelectors[1] = HttpContext.Current.Request.Form["MailFormSubmitter_applicantemailaddress2"];
    ApplicantMailNodeSelectors[2] = HttpContext.Current.Request.Form["MailFormSubmitter_applicantemailaddress3"];
}
if (IsCheckPDfMailSubmit == null || IsCheckPDfMailSubmit.Length == 0) {
  return;
}
或者,不必在函数中间退出,您可以反转条件并将剩余代码放入
if
语句中:

if (!(IsCheckPDfMailSubmit == null || IsCheckPDfMailSubmit.Length == 0)) {
  // ...
  // rest of the code in the method
  // ...
}
if (!(IsCheckPDfMailSubmit == null || IsCheckPDfMailSubmit.Length == 0)) {
  IsCheckedPDFMailForm = IsCheckPDfMailSubmit.Equals("True", StringComparison.OrdinalIgnoreCase); 
}
如果只想跳过下一行,但继续使用方法中的其余代码,请反转条件并将该行放入
If
语句中:

if (!(IsCheckPDfMailSubmit == null || IsCheckPDfMailSubmit.Length == 0)) {
  // ...
  // rest of the code in the method
  // ...
}
if (!(IsCheckPDfMailSubmit == null || IsCheckPDfMailSubmit.Length == 0)) {
  IsCheckedPDFMailForm = IsCheckPDfMailSubmit.Equals("True", StringComparison.OrdinalIgnoreCase); 
}

您的方法是void类型,因此无法返回任何值。表达式
返回IsCheckPDfMailSubmit==null尝试返回布尔值是不正确的,因此会出现编译器错误

你可以用两种方法来修复它,一种方法是改变你的if条件来检查其他情况

public void ReadPostedData()
{
    Sender = HttpContext.Current.Request.Form["MailFormSubmitter_sender"];
    Subject = HttpContext.Current.Request.Form["MailFormSubmitter_subject"];        
    Message = HttpContext.Current.Request.Form["Message"];
    PdfMessage = HttpContext.Current.Request.Form["PdfMessage"];

    string IsCheckPDfMailSubmit = HttpContext.Current.Request.Form["IsCheckedPDFMailForm"];
    if (IsCheckPDfMailSubmit != null && IsCheckPDfMailSubmit.Length > 0)
    // A better option is to use string.IsNullOrEmpty:
    // if (!string.IsNullOrEmpty(IsCheckPDfMailSubmit))
    {

    IsCheckedPDFMailForm = IsCheckPDfMailSubmit.Equals("True", StringComparison.OrdinalIgnoreCase); 





    string v = HttpContext.Current.Request.Form["MailFormSubmitter_includeoverviewpdf"];
    IncludeOverviewPdf = v.Equals("true,false", StringComparison.Ordinal) ? true : false;
    // http://forums.asp.net/t/1314753.aspx

    ApplicantMailNodeSelectors[0] = HttpContext.Current.Request.Form["MailFormSubmitter_applicantemailaddress1"];
    ApplicantMailNodeSelectors[1] = HttpContext.Current.Request.Form["MailFormSubmitter_applicantemailaddress2"];
    ApplicantMailNodeSelectors[2] = HttpContext.Current.Request.Form["MailFormSubmitter_applicantemailaddress3"];
   }
}

不要执行这一行
-只执行那一行?或者您的意思是完全从方法返回?您的函数有一个void返回类型,因此它不希望您返回任何内容。如果要跳过检查后的代码,请将整个块包装在条件中,并仅在满足条件的情况下执行。是否尝试过以下操作:string.IsNullOrEmpty(IsCheckPDfMailSubmit)谢谢!!我不知道这是怎么回事,因为我的回答完全符合你的要求。