方法必须具有返回类型
本文关键字:返回类型 方法 | 更新日期: 2023-09-27 18:21:03
当我试图构建解决方案时,我一直会遇到这个错误。我试过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;
}
编辑
现在我得到错误:"并非所有代码路径都返回值"
编辑II
抱歉忘记粘贴try&我在里面抓到的东西。我把它们移走了,效果很好。如果有人想展示如何使用try&抓住,尽管感觉自由。
您需要指定要返回的变量的类型:
public static List<string> LoadCitiesByState(string state)
为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;
}
一般来说,尽量减少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;
}