プロが教えるわが家の防犯対策術!

こんにちは。
色々とわけがあり、C#でプログラミングをすることとなりました。
数年前、VB6で簡単なプログラムを作成していましたが、C#は初めてとなります。
全くの初心者の質問で申し訳ありませんが、アドバイスをお願いします。

目的はNCデータを編集するクラスを作成したいです。
本文から変更用ヘッダー情報、フッタ情報、元データをクラスに送り、
変更して本文に戻すような処理を作成しようとしています。

クラス設計をしたいのですが、以下のコードを書くとエラーになってしまいます。

/// <summary>
/// NCデータを作成する
/// </summary>
class Mk_NcData
{
//受入変数
public string[] heder = null; //ヘッダー
public string[] footer = null; //フッター
public string[] O_ncdata = null; //元Ncデータ
//出力変数
public string[] N_ncdata = null;//編集後Ncデータ
public bool[] ch;//編集行FLG ture=未編集 false=編集
//ファイルの終わりまで
foreach (string line in O_ncdata )
{
//NCデータ編集処理 ※省略します。
}

}
                   ※ VisualStudio2015を使用しています。

foreach (string line in O_ncdata )  の行で
「名前’O_ncdata’ は現在のコンテキストに存在しません。
;が必要です。」

というエラーがでます。O_ncdataは変数宣言してあるつもりです。

根本的に間違いがあるのであればそれも指摘してください。
初歩的なことで申し訳ありませんが、ご指導お願いします。

A 回答 (1件)

1.foreachがメンバ変数と同階層にあります。

記載ミスですか?通常はコンストラクタなどで記載すべきです。
2.O_ncdataが初期化されていません。nullに対してforeachを行うとエラーになります。

余談ですが、配列よりリスト等を利用したほうが機能が充実していて使いやすいですよ
    • good
    • 0
この回答へのお礼

ご指導ありがとうございます。

コンストラクタについて理解が足らず、再度調べてみました。
コンストラクタ部に記入することでエラーが無くなりました。
foreachでnullを使用するとエラーになることも勉強させてもらいました。

的確な指摘をいただき大変勉強になりました。
ありがとうございます。

また、リスト型についても勉強して有効活用してみます。

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

お礼日時:2017/10/10 14:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!