方法必须具有返回类型

Tre*_*and 0 c# asp.net

当我尝试构建我的解决方案时,我不断收到此错误.我已经尝试过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;

   }
Run Code Online (Sandbox Code Playgroud)

编辑

现在我收到错误:"并非所有代码路径都返回一个值"

编辑二

对不起忘了粘贴我在那里的try&catch.我删除了它,它工作.如果有人想要展示如何使用try&catch来实现它,请尽情享受.

tza*_*man 13

您需要指定要返回的变量的类型:

public static List<string> LoadCitiesByState(string state)
Run Code Online (Sandbox Code Playgroud)

编辑try/catch:

无论是否抛出异常,您都需要确保返回一些内容.所以事先声明返回变量,并在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;
}
Run Code Online (Sandbox Code Playgroud)

通常,最小化try块内部的行数总是一个好主意.


shf*_*301 6

你返回的城市是一个List<string>应该是你的返回类型.

public static List<string> LoadCitiesByState(string state)