teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

詩的内容を修正、クラスの継承は今回関係なので、削除

2016/06/21 12:57

投稿

KKcambodia
KKcambodia

スコア14

title CHANGED
File without changes
body CHANGED
@@ -1,9 +1,11 @@
1
- outを使ったList参照わたし試みいるのですが、
1
+ ご指摘通り、変数名変えみました。
2
- overrideしている箇所のLISTの定義でビルドエラーになります。
3
- virtualの箇所と同じなのですが、どうしてエラーになるのか
4
- いまいち理解できません。。
5
2
 
3
+ overrideは、ややこしいので、削除しました。
4
+ しかし、
5
+ コントロールが現在のメソッドを抜ける前に割り当てられる必要があります。
6
+ といったビルドエラーになります。
7
+ エラーのメッセージが言わんとしていることは理解できますが、
6
- List定義こで行えばよいのでしょうか。
8
+ 変数定義う変ばよいのか、わかりません
7
9
 
8
10
  ```ここに言語を入力
9
11
  using System;
@@ -23,23 +25,23 @@
23
25
  {
24
26
  MessageBox.Show("処理を開始します");
25
27
  // out を使った場合、変数を初期化不要
26
- List<string[]> stArrayData = new List<string[]>();
28
+ List<string[]> Data = new List<string[]>();
27
29
  CsvEdit1 obj1 = new CsvEdit1();
28
- obj1.ReadCsv(out stArrayData);
30
+ obj1.ReadCsv(out Data);
29
31
  MessageBox.Show("ここでブレークポイントでチェック");
30
32
  }
31
33
  }
32
34
 
33
- public class CsvEdit1 : CsvEdit
35
+ public class CsvEdit1
34
36
  {
35
- public override ReadCsv(out List<string[]> stArrayData)
37
+ public void ReadCsv(out List<string[]> Data)
36
38
  {
37
- List<string[]> stArrayData = new List<string[]>();
39
+ List<string[]> tempData = new List<string[]>();
38
40
  try
39
41
  {
40
42
  // csvファイルを開く
41
43
  System.IO.DirectoryInfo dirPath =
42
- new System.IO.DirectoryInfo(@"E:/StudyProject/input/");
44
+ new System.IO.DirectoryInfo(@"E:/A/");
43
45
  System.IO.FileInfo[] files =
44
46
  dirPath.GetFiles("test_*.csv", System.IO.SearchOption.AllDirectories);
45
47
  // 指定フォルダからCSVを取得し、配列に格納する。
@@ -57,7 +59,7 @@
57
59
  // カンマ区切りで分割して配列に格納する
58
60
  string[] record = line.Split(',');
59
61
 
60
- stArrayData.Add(record);
62
+ tempData.Add(record);
61
63
  }
62
64
  }
63
65
  }
@@ -70,46 +72,5 @@
70
72
  }
71
73
  }
72
74
  }
73
-
74
- public class CsvEdit
75
- {
76
- public virtual void ReadCsv()
77
- {
78
- List<string[]> stArrayData = new List<string[]>();
79
- try
80
- {
81
- // csvファイルを開く
82
- System.IO.DirectoryInfo dirPath =
83
- new System.IO.DirectoryInfo(@"/");
84
- System.IO.FileInfo[] files =
85
- dirPath.GetFiles("test_*.csv", System.IO.SearchOption.AllDirectories);
86
- // 指定フォルダからCSVを取得し、配列に格納する。
87
- foreach (System.IO.FileInfo filePath in files)
88
- {
89
- using (var readCsv = new System.IO.StreamReader(filePath.FullName))
90
- {
91
- //ヘッダを読み捨てる。
92
- readCsv.ReadLine();
93
- // ストリームの末尾まで繰り返す
94
- while (!readCsv.EndOfStream)
95
- {
96
- // ファイルから一行読み込む
97
- string line = readCsv.ReadLine();
98
- // カンマ区切りで分割して配列に格納する
99
- string[] record = line.Split(',');
100
-
101
- stArrayData.Add(record);
102
- }
103
- }
104
- }
105
- MessageBox.Show("読み込み完了しました。");
106
- }
107
- catch (System.Exception e)
108
- {
109
- // ファイルを開くのに失敗したとき
110
- MessageBox.Show(e.ToString());
111
- }
112
- }
113
- }
114
75
  }
115
76
  ```