这个函数有什么问题.无法返回字符串值

本文关键字:返回 字符串 问题 函数 什么 | 更新日期: 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
        }

 }