DOBON.NETプログラミング道掲示板

[ 最新記事及び返信フォームをトピックトップへ ]

■34012 / inTopicNo.1)  C# 現在のコンテキスト内にxxxという文字は存在しませんと出ます
  
□投稿者/ saitou 一般人(1回)-(2018/10/23(Tue) 10:58:56)
  • アイコン
    分類:[その他] 

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace ConsoleApp4
    {
    class Program
    {
    static void Main(string[] args)
    {
    char[] days = new char[7] { niti, getu, ka, sui, moku, kin, dou };
    Console.WriteLine(days[1]);
    }
    }
    }
    本の通りにやっているつもりなのですがエラーが治せません助けてください
マルチポストを報告
違反を報告
引用返信 削除キー/
■34013 / inTopicNo.2)  Re[1]: C# 現在のコンテキスト内にxxxという文字は存在しませんと出ます
□投稿者/ まりもん 一般人(4回)-(2018/10/23(Tue) 11:30:05)
  • アイコン> char[] days = new char[7] { niti, getu, ka, sui, moku, kin, dou };
    その本にはこの部分にダブルコーテーションが書いてありませんか?
違反を報告
引用返信 削除キー/
■34014 / inTopicNo.3)  Re[1]: C# 現在のコンテキスト内にxxxという文字は存在しませんと出ます
□投稿者/ 魔界の仮面弁士 大御所(1157回)-(2018/10/23(Tue) 11:56:34)
  • アイコンここの掲示板にプログラムコードを貼る場合は、
    「通常モード」ではなく「図表モード」で投稿すると読みやすいですよ。


    No34012に返信(saitouさんの記事)
    > char[] days = new char[7] { niti, getu, ka, sui, moku, kin, dou };

    days という配列変数を宣言して、そこに
    「sui」や「kin」などの 7 つの char 値を代入しようとしていますね。

    しかし、代入しようとしている「sui」などの値の定義が漏れているので、
    このコードはコンパイルエラーになるはずです。


    > 本の通りにやっているつもりなのですがエラーが治せません助けてください
    ※「治す」→「直す」

    本が間違っているか、手順が間違っているのかを、
    この質問だけで判断することはできません。

    質問文からは、何という本のどの部分を読んでいるのかさえ分かりませんし、
    仮に書籍が分かったとしても、他の人が同じ本を持っている保証も無いわけで…。



    === 理解度が読み取れないので、少し長文回答になりますが ===

    まず、char というのは「1 文字」を表現する型です。
    この型に文字をセットするには、
     char niti = '日';
     char getu = '月';
    のように、1 文字をシングルクォーテーションで囲って渡します。
    char 型変数に格納される文字は、常に 1 文字です。0 文字や 7 文字は代入できません。

    似たような型に、「文字列」を表現する string 型があり、こちらは
     string weekNames = "日月火水木金土";
     string message = "";
    のように、ダブルクォーテーションで囲って渡します。
    string 型変数に格納される文字列は、何文字でも構いません。0 文字でも OK です。

    これらは変数だけでなく、定数宣言(const)でも使えます。
     const char sui = '水';
     const string Suiyoubi = "水曜日";
    などのように。


    でもって
     char[] days;
    このように書いた場合、days は「char 型の 1 次元配列」の宣言を意味します。

    そして、
     char[] days = new char[7];
    と書いた場合は、その days に「7 つの char 値」を準備したことになり、
     char[] days = new char[7];
     days[0] = '日';
     days[1] = '月';
     days[2] = '火';
     days[3] = '水';
     days[4] = '木';
     days[5] = '金';
     days[6] = '土';
    のようにして、0〜6 のインデックスを指定して、char 値を代入(あるいは取得)できます。

    そして、上記の記述については、
     char[] days = new char[7] { '日', '月', '火', '水', '木', '金', '土' };
    のように、一行にまとめて書くこともできます。ちなみに、
     char[] days = new char[] { '日', '月', '火', '水', '木', '金', '土' };
    と書いても OK です。


    また、あらかじめ char 型の変数や定数が既にあるのなら、
     char niti = '日';
     char getu = '月';
     const char ka = '火';
     const char sui = '水';
    などを用いて、
     char[] days = new char[] { niti, getu, ka, sui, /*省略*/ };
    などと書くこともできます。
違反を報告
引用返信 削除キー/
■34015 / inTopicNo.4)  Re[2]: C# 現在のコンテキスト内にxxxという文字は存在しませんと出ます
□投稿者/ saitou 一般人(2回)-(2018/10/23(Tue) 19:15:26)
  • アイコン分かりやすく教えていただいてありがとうございました!
    最近本を買って始めたばかりですが凄く分かりやすかったです。
解決み!
違反を報告
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

Mode/  Pass/


- Child Tree -