仕様環境:visualstudio2019, C#, windows forms作成中
C#
1コード 2 3 public List<string> GetFileNamesRecursive(string folderpath) 4 { 5 6 7 8 IEnumerable<string> files = 9 System.IO.Directory.EnumerateFiles( 10 @folderpath, "*", System.IO.SearchOption.AllDirectories);// 11 12 //ファイルを列挙する 13 List<string> list1 = new List<string>(); 14 list1 = new List<string>(); 15 foreach (string f in files) 16 { 17 list1.Add(f); 18 string gfn1 = Path.GetFileName(f);//拡張子付き 19 Console.WriteLine(f);//再帰的にpath列挙される 20 Console.WriteLine(gfn1);// 21 22 return list1; 23 } 24 25 26 }
上記のコードをクラスに追加したところ、
エラー CS0161 'Class1.GetFileNamesRecursive(string)': 値を返さないコード パスがあります
というエラーが出ました。
やりたいこと
上記コードのlist1を同じList<String>で返したい
試したこと
元々は、引数にもList<string> listと設定していて、同様のこのエラーが起きたので引数にListを指定しているのが原因かなと思い、
その引数を削除して上記のコードになりました。しかし同様のエラーが起こっている次第です。
手探りで戻り値の型を明示しないや、string[], int[]などすべて試したが上記のエラーが消えず、この場をお借りしてしつもんさせていただきました。
調べた感じでは、methodでリストを戻り値として返すとき、nullが返ってしまうとエラーになるという情報を見て、
回答2件
あなたの回答
tips
プレビュー