質問: System.Text.Encoding.GetEncoding("Shift_JIS").GetBytes("ABCDEF"); 環境 Windows7 pro 言語 C# Visual Studio 2015 組み込み型 Cは、理解しているつもりです。オブジェクト指向C#は、まだ初心者で、直ぐ”C”と比べしまい パニックに陥ります。 ご教授宜しくお願いいたします。
回答: 1)でよいと思います。 2)は変数を宣言してから直後で代入としていますが、そのようなスタイルを採る理由はあまりないと思います。例えば昔のC言語は「変数は全部ブロックの先頭で宣言しなければならなかった」ため全ての変数の宣言とその設定を別々にやったりしたものですが、C#では(確か現在のC言語の仕様でも?)「変数は必要な場所で宣言・設定」ができるようになっており、「変数の有効範囲=スコープ」を無暗に広くしないという望ましいプログラミングができるようになっていますね。例えばその変数を参照したいスコープをあえて広げるために値を設定する箇所の外側のスコープで宣言するなんて理由でもない限りはあまりやらないコーディングといってよいでしょう。 3)は2)や1)に比べて「バグ」といってもいいくらい良くないコードだと思います。初期設定している値は次の代入文ですぐに捨てられてしまうのでまったく意味を持ちません。GCで回収しなければならないオブジェクトを無駄に増やしているだけと言えましょう。