質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

Q&A

解決済

2回答

2315閲覧

C# 値を返さない コードパスがありますエラー

african

総合スコア17

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

0グッド

0クリップ

投稿2021/12/11 22:24

編集2021/12/11 22:49

仕様環境: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が返ってしまうとエラーになるという情報を見て、

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

1T2R3M4

2021/12/11 22:31

調べたこと、試したことを質問に追記していただけませんか。
Zuishin

2021/12/11 22:51

仮にエラーが出なかったとしても、return list1; は foreach の外に出すべきです。
guest

回答2

0

自己解決

すみません。灯台下暗しでした。
return list1;をforLoop中に書いていたのが原因で、普通にmethodの最後に記述すると動作しました。

投稿2021/12/11 22:50

african

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

foreach (string f in files)

filesが空のときはreturn実行されませんね

投稿2021/12/11 22:45

y_waiwai

総合スコア87800

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問