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;
}
}
上面是一段代码。
问题是不允许返回字符串。它不断给出编译错误。我确信我做错了!!。
感谢。
答案 0 :(得分:2)
我假设它类似于:
“并非所有代码都返回值”。
如果是这样,只需添加
public static string GetContentFromSPList(string cValueToFind)
{
string cValueFound = "";
try
{
//code
}
catch (Exception ex)
{
}
finally
{
//some cleanup
}
return cValueFound ;
}
答案 1 :(得分:1)
将它放在方法的底部,因为如果捕获到异常则不返回。
catch (Exception ex)
{
return cValueFound;
}
finally
{
}
}
答案 2 :(得分:1)
您无法从finally
返回,
(control cannot leave the body from finally clause
或其他)
最后或从catch
移动返回答案 3 :(得分:0)
只需在finally块下面添加你的return语句。
不要回来试试blck。
答案 4 :(得分:0)
我看到开发人员错过了这么多次。发生这种情况的原因是因为一旦定义了函数的返回类型,那么函数应该在所有出口点都有一个return语句。在这种情况下,一个函数应该在try块的末尾有一个return语句,一个在catch块内,或者在Tigran定义的底部只有一个右边。如果你不打算从catch块返回任何东西,那么只返回null;
public static string GetContentFromSPList(string cValueToFind)
{
string value= "";
try
{
//code
return value;
}
catch (Exception ex)
{
return null;
}
finally
{
//some cleanup
}
}