• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C# Listとclassが絡んだコードが分かりま)

C# Listとclassが絡んだコードの分析とfileAndTimesの中身の出力方法

このQ&Aのポイント
  • C#の勉強を始めました。鳩でもわかるC#(増分バックアップ)を参考に勉強してますが、vs2[0]とvs2[1]の2つの変数の塊をどんどん繋いでいるのかなと想像するのですが、厳密には何が起きているのか分かりません。このコードは何をやっているのでしょうか?fileAndTimesの中身を出力に書き出すはどんなコードを書けばよいでしょうか?詳しい方ご教示願います。
  • C#の勉強をしている中で、複数のクラスが組み合わさったコードに出会いましたが、そのコードが何をしているのか理解できません。具体的には、vs2[0]とvs2[1]という変数がどんどん繋がっているようですが、詳細はわかりません。また、fileAndTimesの中身を出力に書き出す方法もわかりません。誰か詳しい方に教えていただけないでしょうか?
  • C#の勉強をしています。現在、vs2[0]とvs2[1]という変数が絡んだコードを理解しようとしていますが、正確な動作やfileAndTimesの中身を出力する方法がわかりません。どなたか教えていただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • dell_OK
  • ベストアンサー率13% (766/5721)
回答No.1

以下の点が不明なので、何をやっているかの判断が難しいです。 ・vs2の定義 ・fileAndTimesの定義 ・CreateFileAndTimesの呼び出し fileAndTimesの中身を出力に書き出すのは面倒なので、 ブレークポイントを付けてみてください。 確認したい場所、たとえば、 return fileAndTimes; この行でF9キーを押してみてください。 左に赤い丸が表示されたらブレークポイントになります。 それで実行すると、 ブレークポイントのところで処理が一旦停止します。 画面の左下に自動と言うウィンドウが表示されて、 fileAndTimesが表示されると思います。 そこの▷をクリックするとツリーが広がりますので、 内容が確認できると思います。 処理を続行するにはF5キーを押してください。

gennya
質問者

お礼

回答ありがとうございました。 教えていただいた変数の見方はうまくいきました。 これで理解が少し進みました。 なぜ、こんな複雑?な処理をしているのか今は分かりませんが、次のステップでこの結果をどのようにつかっているのかを理解できれば、今回のコードの意味も見えてくると思います。 まあ、次のコードの方がもっと難しいのですけどね。

gennya
質問者

補足

回答ありがとうございます。 以下補足させていただきます。 ・vs2の定義   List<FileAndTime> CreateFileAndTimes(string logFilePath) { List<FileAndTime> fileAndTimes = new List<FileAndTime>(); StreamReader sr = new StreamReader(logFilePath); string str = sr.ReadToEnd(); sr.Close(); string[] vs1 = str.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries); foreach(string line in vs1) { string[] vs2 = line.Split(new string[] { "::" }, StringSplitOptions.RemoveEmptyEntries); if(vs2.Length != 2) continue; FileAndTime fileAndTime = new FileAndTime(vs2[0], long.Parse(vs2[1])); fileAndTimes.Add(fileAndTime); } return fileAndTimes; } } ・fileAndTimesの定義 質問に記載したコードしかないと思います。 ・CreateFileAndTimesの呼び出し if(lastLogFilePath != "") { fileAndTimes = CreateFileAndTimes(lastLogFilePath); if(!DoesNeedBackup(fileAndTimes, folderPaths, filePaths)) { MessageBox.Show("バックアップをとる必要があるファイルは見つかりませんでした", "報告", MessageBoxButtons.OK, MessageBoxIcon.Information); return false; } }

関連するQ&A