这个函数有什么问题.无法返回字符串值
本文关键字:返回 字符串 问题 函数 什么 | 更新日期: 2023-09-27 18:32:47
public static string GetContentFromSPList(string cValueToFind)
{
string cValueFound = "";
try
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite("http://mysite"))
{
site.AllowUnsafeUpdates = true;
using (SPWeb web = site.OpenWeb())
{
web.AllowUnsafeUpdates = true;
SPList oListAbout = web.Lists["About"];
SPQuery oQuery = new SPQuery();
oQuery.Query = "<OrderBy><FieldRef Name='myField' /></OrderBy><Where><Eq><FieldRef Name='myField' /><Value Type='Choice'>" + cValueToFind + "</Value></Eq></Where>";
SPListItemCollection collListItems = oListAbout.GetItems(oQuery);
foreach (SPListItem oListItem in collListItems)
{
cValueFound = (oListItem["FieldContents"] != null ? oListItem["FieldContents"].ToString() : "");
}
}
}
return cValueFound;
});
//return cValueFound;
}
catch (Exception ex)
{
}
finally
{
//return cValueFound;
}
}
以上是一段代码。
问题是不允许返回字符串。它不断给出编译错误。我确定我做错了什么!.
谢谢。
我想它是这样的:
"并非所有代码都返回值"。
如果是这样,只需添加
public static string GetContentFromSPList(string cValueToFind)
{
string cValueFound = "";
try
{
//code
}
catch (Exception ex)
{
}
finally
{
//some cleanup
}
return cValueFound ;
}
把它放在方法的底部,因为如果捕获异常,你不会返回。
catch (Exception ex)
{
return cValueFound;
}
finally
{
}
}
你不能从finally
返回,
(control cannot leave the body from finally clause
什么的)
在最后或从捕获后移动返回
只需在 finally 块下面添加您的返回语句。
不要再回来尝试了。
我看到开发人员错过了很多次。发生这种情况的原因是,一旦定义了函数的返回类型,那么函数应该在所有出口点都有一个 return 语句。在这种情况下,函数应该有一个返回语句,一个在try块的末尾,一个在catch块内,或者只有一个在Tigran定义的底部。如果您不打算从 catch 块返回任何内容,则只需返回 null;
public static string GetContentFromSPList(string cValueToFind)
{
string value= "";
try
{
//code
return value;
}
catch (Exception ex)
{
return null;
}
finally
{
//some cleanup
}
}