簡體   English   中英

方法必須具有返回類型

[英]Method must have return type

嘗試構建解決方案時,我一直收到此錯誤。 我試過public string ,只是public但無法正常工作。 有任何想法嗎? 謝謝!

[WebMethod]
public static LoadCitiesByState(string state)
{
        DataTable dt = SharedDataAccess.GetCities(state);
        List<string> cities = new List<string>();

        foreach (DataRow row in dt.Rows)
        {
            cities.Add(row[0].ToString());
        }
        return cities;

   }

編輯

現在我得到了錯誤:“並非所有代碼路徑都返回一個值”

編輯二

對不起,忘記粘貼我在那兒的try&catch了。 我刪除了它們,它起作用了。 如果有人想展示如何使其一試就可以使用,請放心。

您需要指定要返回的變量的類型:

public static List<string> LoadCitiesByState(string state)

編輯嘗試/捕獲:

無論是否引發異常,都需要確保返回某些內容。 因此,事先聲明返回變量,然后在try / catch塊之后返回它:

public static List<string> LoadCitiesByState(string state)
{
    List<string> cities = new List<string>();
    try {
        DataTable dt = SharedDataAccess.GetCities(state);
    } catch // specify exceptions here
    {
        //exception handling
    }
    foreach (DataRow row in dt.Rows)
    {
        cities.Add(row[0].ToString());
    }
    return cities;
}

通常,最好將try塊中的行數減到最少。

您要返回的城市是List<string>因此應該是您的返回類型。

public static List<string> LoadCitiesByState(string state)

方法的問題在於,您需要定義要返回的數據類型

[WebMethod]
public static List<string> LoadCitiesByState(string state)
{
    DataTable dt = SharedDataAccess.GetCities(state);
    List<string> cities = new List<string>();

    foreach (DataRow row in dt.Rows)
    {
        cities.Add(row[0].ToString());
    }
    return cities;

}

就這樣

更新

如果您想添加嘗試和捕獲功能,可以這樣做

[WebMethod]
public static List<string> LoadCitiesByState(string state)
{

    List<string> cities = new List<string>();
    try
    {
        DataTable dt = SharedDataAccess.GetCities(state);
        foreach (DataRow row in dt.Rows)
        {
            cities.Add(row[0].ToString());
        }
     }
     catch(Exception e)
     {
          //logs your exception 
     }

    return cities;

}

您需要指定返回類型,請嘗試此操作

[WebMethod]
public static List<string> LoadCitiesByState(string state)
{
        DataTable dt = SharedDataAccess.GetCities(state);
        List<string> cities = new List<string>();

        foreach (DataRow row in dt.Rows)
        {
            cities.Add(row[0].ToString());
        }
        return cities;

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM