パスワードを忘れた? アカウント作成
14266887 journal
日記

yumeの日記: C#学習 4 3

日記 by yume

コメントありがとうございます。とても助かります。

++C++;

●C#のプログラムの基本構造
●プログラムの作成・実行
>基礎的な内容。おさらい的に。
・C#はIL(中間言語)にコンパイルされ、その後ネイティブコードにさらにコンパイルされる。
・演習問題 実際にVisual Studioでプログラムを実行せよ
●コメント
・コメントを入れすぎてるなら、コードを見直すべきかも
・関数の中に複数の処理があって、コメントを複数書く必要があるなら、関数を分けるべきかも
・理想的にはドキュメンテーションコメントだけでよいはず
>友人と分業したときは、コメントをたくさん書いていた。
>お互いにプログラミング初心者なのもあるが、そもそも関数をあまり利用しなかったり、あるいは細分化していなかったりしたと思う。
●値の入出力
・ユーザから入力を受け取るときは Console.ReadLine();
・数値を受け取りたいときは、(数値型).Parse(Console.ReadLine());
>早速String Formatを使っている。補足コメントのおかげですんなり読めた。
>GUIプログラムのひな形を用意しました、って書いてるけど404だった。
>「ご意見ご要望はGitHub の Issuesまで」って、プログラミング初心者には敷居が高いな……。
>Issueを書いておいた。Github初めて使った。
・課題。
                Console.WriteLine("合言葉を言え:");
                string s = Console.ReadLine();
                Console.WriteLine("倍返し:");
                Console.WriteLine(s);
                Console.WriteLine(s);
>Nethackとか変愚蛮怒とかを思い出した。--more--

Microsoft Learn 『C# で基本的な文字列を書式設定する』
●はじめに
>相変わらず文章が読みづらい。薬のせいじゃなかった。
●演習 - 文字エスケープ シーケンスと逐語的文字列
・特殊文字はバックスラッシュ(文字)で入力する
・\nで改行、\tでタブ。「"」も\"で。
>この辺りは正規表現と一緒か。
>バックスラッシュなら「\\」二個連続なら「\\\\」
・逐語的文字列リテラルを使えば、いちいちバックスラッシュしなくても書いた通りに入る
・逐語的文字列リテラルは、文字列の手前に「@」を入れる。 ex. (@"hogehoge")
・Unicodeエスケープ文字(\u)で、UTF-16の文字コードを直接指定して文字を呼び出せる。ただしいろいろ注意点がある。
>こんな使い方すること、そんなにあるんだろうか。少なくとも日本語を普通に打つ方法は他にあるだろう。
●演習 - 文字列連結
・変数と+と文字列それぞれをつなげられる。
>おさらい的な。
●演習 - 文字列補間
・文字列の手前に「$」を入れると、文字列内の「中括弧{}」内を変数として読める。
>String Formatの書き方が違うようなもの?
・@と$、ふたつのプレフィックスを同時に使うこともできる
●課題
string projectName = "ACME";
string russianMessage = "\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0432\u044b\u0432\u043e\u0434";

Console.WriteLine($@"View English output:
                c:\Exercise\{projectName}\data.txt
");
Console.WriteLine($@"{russianMessage}:
                c:\Exercise\{projectName}\ru-RU\data.txt");
>ロシア語の前に1行空きを入れていなかった。@プレフィックスを使っていたのでとりあえず無理やり入れたけど、ちょっと気持ち悪い感じ。
●知識
>問題無し

6分オーバー。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2020年08月14日 16時47分 (#3870295)

    わざわざUTF-16 の文字コードに変換しなくても
    string russianMessage = "Посмотреть русский вывод";

    でいけるはずですが。
    文字列リテラルの使い方の練習だから、無理に使っている感じでしょうか。

    そういや、文字列リテラルって全然使わないですね (他の言語でも使わないかな)。
    数値の型リテラルは、たまに使いますが。

    • by Anonymous Coward

      ソースコードのエンコーディングがシフトJISだった頃の名残ですね。
      今はUTF-8が標準になったので普通に書いて問題ないです。

      逐次的文字列リテラルは正規表現のパターン書く時とSQL書く時(改行もそのまま書ける)は大変便利なんで覚えておくといいですね。

      • by Anonymous Coward

        この例のキリル文字なら全てシフトjisに収録されているのでは…

typodupeerror

アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家

読み込み中...