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

上記はコードです。この機能に問題があります。文字列の値を返すことができません

問題は、文字列を返すことを許可していません。それはコンパイルエラーを与え続ける。私は何か間違っていると確信しています!!

ありがとうございました。

+1

表示されているエラーメッセージを投稿できますか? –

+0

コンパイラによってエラーが発生した場合は、コードが間違っています。奇妙なことに、生成されたエラーメッセージは間違ったビットが何であるかを正確に伝えます。 – Tergiver

+0

私は「すべてのコードパスが値を返すわけではない」というエラーから始めると思います... –

答えて

2

私はそれはのようなものだと仮定し: "すべてのコードが値を返さない"

ので、ちょうど

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

     return cValueFound ; 
} 
あなたはfinallyから復帰することはできません
1

これは、例外が検出された場合に戻らないため、メソッドの一番下に置きます。

catch (Exception ex) 
    { 
     return cValueFound; 
    } 
    finally 
    { 
    } 
} 
1


control cannot leave the body from finally clauseか何か)

移動リターンを追加する場合のいずれか

0

はちょうどあなたのリターンを追加し、最終的またはキャッチから後最後のブロックの下の文。

try try blckで戻りません。

0

このような多くの時間を逃した開発者を見てきました。なぜなら、関数の戻り値の型を定義すると、関数はすべての出口点でreturn文を持つ必要があるからです。この場合、関数はtry文の終わりに1つ、catchブロックの中に1つ、またはTigranが定義したところで1つだけ右にreturn文を持つ必要があります。 catchブロックから何かを返そうとしない場合はnullを返します。

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


} 
関連する問題