none
無効なトークンvoidと言われてしまう RRS feed

  • 質問

  • 以下のコードで、エラーメッセージが

    「エラー 1 無効なトークン 'void' が クラス、構造体またはインターフェイスのメンバ宣言で使用されています。 」

    と言われてしまいますが、何が悪いのかわかりません。初歩的な質問で恐縮ですが、よろしくお願いいたします。


    namespace ReadWriteCSV
    {
        class Class_ReadWriteCSV
        {
            Public void Read_CSV()
            {
                Object line_array;
                Object dum_array;
                int i;
                int NUM_line_array;
                DateTime timer_ini;
                System.IO.StreamReader sr;


                timer_ini = DateTime.Now;
                TimeSpan ts = DateTime.Now - time_ini;
                Messagebox.Show(ts.seconds);
            }

    }

    2006年10月31日 14:50

すべての返信

  • Public の p が大文字だからです。
    Visual Basic 経験者の方は良く間違えます。
    私も時々やります。

    Public がエラーになると良いのに困りますよね。

    2006年10月31日 15:12
  • えむナウさん

    ご回答ありがとうございます。
    通常はVB.NETで結構プログラミングをやっているのですが、
    さきほどC#のプログラムをいじり始めましたが、これが結構苦戦しています。

    特に、
    ■VB.NET(VB2005)の場合は、小文字で書いていき、次の行に移ると
    正しい場合は大文字になってエラーかどうかの確認ができる

    ■VBはコーディングの状態でエラーが分かるのに、C#は一度コンパイルを
    しないとわからない。

    ■上記にもかかわらず、恐らくVB2005からはC#と速度は変わらない

    ということで、C#のメリットっていったい何?とまで思ってしまいました。
    コード自体はVB.NETより読みやすいことは認めますが。。。。

    ところで、上記のようなエラー以外で、VB経験者が陥りやすいエラーを
    ご存知の範囲で教えていただけますでしょうか?

    すみませんがよろしくお願いいたします。

     

    2006年10月31日 15:38
  • なっぷさん、こんにちは。

     なっぷ さんからの引用
    VB.NET(VB2005)の場合は、小文字で書いていき、次の行に移ると
    正しい場合は大文字になってエラーかどうかの確認ができる

    常に、コンパイル エラーになるかどうか確認ができるとは限らないですが、
    大文字小文字を判別しない言語だからこその機能だと思います。

    VBはコーディングの状態でエラーが分かるのに、C#は一度コンパイルをしないとわからない。

    確かに、これは C# にも欲しい機能ですね。
    ただ、C# のインテリセンスは VB より親切になった部分もありますね。

    上記にもかかわらず、恐らくVB2005からはC#と速度は変わらない

    私は両刀使い  (ただし、刃は短いw) ですが、1.x 時代から、速度差を感じたことはありません。

    ということで、C#のメリットっていったい何?とまで思ってしまいました。
    コード自体はVB.NETより読みやすいことは認めますが。。。。

    何だか、C# >>>>> VB である意見が多いのですが、必ずしもそうではないと思います。
    CLR の前では、言語は道具に過ぎず、使いやすいもの、合った物を選べば良い時代になっていると感じます。

    そういう意味では、"読みやすさ" も個人に依存します。
    私は、C# を好んで使っていますが、VB の方が読みやすいと感じます。

    ところで、上記のようなエラー以外で、VB経験者が陥りやすいエラーを
    ご存知の範囲で教えていただけますでしょうか?

    基本構文の範囲であれば、

    • メソッドの () の付け忘れ
    • typeof の意味の取り間違え
    • 配列の定義をする時、添え字の意味合いが異なる

    などなどが思いつきます。

    2006年11月1日 0:18