重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

StreamWriter swrite = new StreamWriter("C:\\19yamana.csv",false, System.Text.Encoding.GetEncoding("shift-jis"));
のファイル名"C:\\19yamana.csv"の部分を変数にしたいのですがうまく出来ません。

やったこと:
string fileName = "C:\\19yamana.csv";
StreamWriter swrite = new StreamWriter(fileName, false, System.Text.Encoding.GetEncoding("shift-jis"));

A 回答 (4件)

こんにちは


>>今回のエラーはメソッドの内側に書くべきコードをメソッドの外側に書いたから。
>うーー。この意味がわからないのです。
わかりにくいですね。具体的には、
今ある
StreamWriter swrite = new StreamWriter(fileName, false, System.Text.Encoding.GetEncoding("shift-jis"));

を、
StreamWriter swrite;
swrite = new StreamWriter(fileName, false, System.Text.Encoding.GetEncoding("shift-jis"));
に分解し、代入文の部分を、public Form1() 内に移動してください。
多分、コンパイルエラーが消えるはずです。
はずしていたらごめんなさい。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ご教示のとおり、分割して、後半をコンストラクタ内に移動したら、コンパイルエラーが消えました!!
プログラムも想定したとおりの動きになりました。

まとめると、
 ひとつの文でファイル名を直接書けばOK、
 ファイル名を変数に分離するとエラー、
 さらに2文に分割して、代入部をコンストラクタに移動すれば再びOK
になるわけですね。

でも、なぜ、2番目の方法がエラーになるのか今ひとつ、釈然としません。
どなたかご存知の方いらっしゃいますでしょうか?

お礼日時:2011/08/10 13:39

エラー一覧でF1キーを押すとヘルプが表示されます。



コンパイラ エラー CS0236
http://msdn.microsoft.com/ja-jp/library/5724t6za …

今回のエラーはメソッドの内側に書くべきコードをメソッドの外側に書いたから。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
教えていただいたページは、ヘルプで見たページです。
再度このヘルプを見たのですが、どこをどのように修正したらよいのか、悲しいかな、やはりわかりません。

>今回のエラーはメソッドの内側に書くべきコードをメソッドの外側に書いたから。
うーー。この意味がわからないのです。
具体的に、どこをどのように修正したらよいのでしょうか。
よろしくお願いいたします。

お礼日時:2011/08/09 23:54

文字コードの指定は何にしていますか。



下記ではどうでしょう。

string fileName = @"C:\19yamana.csv";

> にしたいのですがうまく出来ません

どのようにうまくいかないのですか?
エラーメッセージは?

あとは一行ずつトレースして確認してみてください.
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
文字コードはシフトJISですが、ファイル名はアルファベットと数字だけなので、関係ない気がします。
string fileName = @"C:\19yamana.csv";
に変更しても同じエラー

フィールド初期化子は、静的でないフィールド、メソッド、またはプロパティ"xxx.Form1.fileName"を参照できません

になります。

>あとは一行ずつトレースして確認してみてください.
コンパイルできませんので、トレースはできません。

エラーメッセージを読んでも、ヘルプしても、どこをどのように修正したらよいのかわかりません。

お礼日時:2011/08/09 23:49

変数化の仕方は基本的に間違えていないと思います。


実際のソースのどこかに記述ミスとかないでしょうか?
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
実際のソースからのコピペです。

フィールド初期化子は、静的でないフィールド、メソッド、またはプロパティ"xxx.Form1.fileName"を参照できません

といったエラーが出ます。が意味不明で、何を修正したらよいのか分かりません。
よろしくお願いいたします。

お礼日時:2011/08/09 18:27

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

今、見られている記事はコレ!