-1

から非静的メソッドを呼び出す必要がありますstatic[webmethod]。呼び出しを受けていません。ブレークポイントを使用してテストしました。クラスにインスタンスを作成して呼び出しようとしました。これは私がしようとしているものです。

[WebMethod]
public static string get_runtime_values(string get_ajax_answer_title,string get_ajax_answer_des)
{
     if (get_ajax_answer_title.Equals("") && (get_ajax_answer_title.Equals("")))
     {
        return "null";
     }
     else
     {
        int got_question_id = getting_question_id;
        DataHandler.breg obj = new DataHandler.breg();
        obj.add_anwers(got_question_id, get_ajax_answer_title, get_ajax_answer_des);
        return "inserted";
     }

     querystring object_new = new querystring();
     object_new.show();
  }

querystring はここのクラスの名前です。コントロールは入力に応じて if ステートメントと else ステートメントに入りますが、その後は直接飛び出します。さらに、マウスを querystring の上に置くと、それは言う

Unreachable code detected.

機能させるにはどうすればよいですか?

4

8 に答える 8

2

それは、前のステートメントreturnの場合、両方の半分からあなたがいるからです。if

その線までたどり着く方法はありません。

于 2012-09-11T12:16:38.790 に答える
1

true ( return "null") か true でない ( )かに関係なく、メソッドは if ステートメントの後で終了しreturn "inserted"ます。そのため、if ステートメント (クエリ文字列を作成する場所) の後のコードは実行できません。

于 2012-09-11T12:18:23.497 に答える
1

これは、IF セクションと ELSE セクションの両方に return ステートメントがあるためです。

したがって、条件の結果に関係なく。それを下回ることはありません。

于 2012-09-11T12:16:51.253 に答える
0
querystring object_new = new querystring();
object_new.show();

条件の両方のブロックステートメントでリターンを書いたため、部分に到達することはありません。

于 2012-09-11T12:17:39.067 に答える
0

はい、それは if ブロックと else ブロックの両方の最後に return ステートメントがあるためです。

に変更します

[WebMethod] 
public static string get_runtime_values(string get_ajax_answer_title,string get_ajax_answer_des) 
{ 
string ret = "null";
 if (!get_ajax_answer_title.Equals("") || (!get_ajax_answer_title.Equals(""))) 
 { 
    int got_question_id = getting_question_id; 
    DataHandler.breg obj = new DataHandler.breg(); 
    obj.add_anwers(got_question_id, get_ajax_answer_title, get_ajax_answer_des); 
    ret = "inserted"; 
 } 

 querystring object_new = new querystring(); 
 object_new.show(); 

return ret;

}

于 2012-09-11T12:17:50.347 に答える
0

Unreachable code detected.if ステートメントの両方のパスが早く戻るためです。

    if (get_ajax_answer_title.Equals("") && (get_ajax_answer_title.Equals("")))
    {
        return "null"
    }
    else
    {
        return "inserted";
   }
   // Can't get here.

元の質問に正しく答えました。つまり、非静的メソッドのインスタンスをインスタンス化して、メソッドを呼び出すことができるようにします。

querystring object_new = new querystring();
object_new.show();
于 2012-09-11T12:17:52.937 に答える
0
  [WebMethod]
public static string get_runtime_values(string get_ajax_answer_title,string get_ajax_answer_des)
    {  string result;
       if (get_ajax_answer_title.Equals("") && (get_ajax_answer_title.Equals("")))
        {
            result="null";
        }
        else
        {
            int got_question_id = getting_question_id;
            DataHandler.breg obj = new DataHandler.breg();
            obj.add_anwers(got_question_id, get_ajax_answer_title, get_ajax_answer_des);
            result="inserted";
       }
        querystring object_new = new querystring();
        object_new.show();
return result;
       }
于 2012-09-11T12:19:03.700 に答える
0

問題は、if 句と else 句の両方でメソッドを終了していることです。あなたのコードは本質的に次のとおりです。

MyMethod() 
{
    if (someCondition)
        return
    else
        return

    // Any code at this point cannot be executed, because 
    // you have definitely returned from your method.

}
于 2012-09-11T12:17:11.687 に答える