0
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;
    }
}

上面是一段代码。

问题是不允许返回字符串。它不断给出编译错误。我确定我做错了什么!

谢谢。

4

5 回答 5

2

它是这样的:

“并非所有代码都返回值”。

如果是这样,只需添加

public static string GetContentFromSPList(string cValueToFind)
{   
       string cValueFound = "";
        try
        {
           //code
        }
        catch (Exception ex)
        {
        }
        finally
        {
           //some cleanup
        }

        return cValueFound ;
 }
于 2012-05-01T21:31:03.273 回答
1

将其放在方法的底部,因为如果捕获到异常,您不会返回。

    catch (Exception ex)
    {
        return cValueFound;
    }
    finally
    {
    }
}
于 2012-05-01T21:30:16.017 回答
1

您不能从finally,
(control cannot leave the body from finally clause或其他东西)返回

在 finally 之后或从 catch 移动返回

于 2012-05-01T21:32:04.163 回答
0

只需在 finally 块下方添加您的 return 语句。

不要返回尝试 blck。

于 2012-05-01T21:43:32.977 回答
0

我已经看到开发人员错过了很多次。发生这种情况的原因是因为一旦定义了函数的返回类型,那么函数应该在所有退出点都有一个 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
        }


 }
于 2012-05-01T21:48:53.743 回答