お疲れ様です。たなしょです。
今日から本格的にC#を勉強していきたいと思います。
C#のコードの全体像
基本的に一番初めにusing Systemが来ますね。
using System;
これはCでいうところのインクルードファイルなのでしょうか?
今のところ特に記載もないのでおまじないということで覚えておきます。
次に名前空間を書くのが一般的らしいです。(本ではしばらく書いてませんが…)
namesapce hogehoge
名前空間とはディレクトリみたいなものだそうです。詳しく進めばわかるようになるんですかね。
そのあとはclassを記載して中に変数やら式やらをいつも通り記載していく流れですね。
class Hoge
{
int a = 1;
}
上記のことまとめるとこんな風に書くことができます。
using System;
namespace Sample
{
class Render2D
{
public int A { get; set; }
public int B { get; set; }
public override string ToString() => $"({A}, {B})";
}
class Program
{
static void Main(string[] args)
{
var p = new Render2D { A = 1, B = 2 };
Console.WriteLine(p);
}
}
}
こう見ると名前空間とクラスとメソッドがとても見やすい言語ですね!
脱線
Visual Studio 2022というIDEを開発では使っているのですがとても便利ですね。フォーマットも自動でただしてくれるし、予測変換はいい感じで効いてくれるのでとても楽に書けます。もうこれなしではC#の開発はできないです。(そういってvimmerなのでいつか環境がVimに移行してると思います)
IDEのライバルとしてJetBrains社のRiderがあるのですがどちらのほうが使いやすいのですかね?個人開発するならVisual Studioで充分な気もしますが、エンタープライズになるとまた違った選択肢もあるのでしょうね。
変数、式、スコープなど
ここに記載することでもないので割愛します。
基本的にどの言語もこの辺は同じだなーという感じで眺めてました。
整数型、浮動小数点数型、文字型、文字列型
「C#はCと違ってstring型があるから文字列が簡単に代入できていいね!」(最近のどの言語でも言えますが)ってところでしょうか。(最近のCにはString型が実装されたのですかね?ANSIしか触ったことがないのでわかりません。)
あとはどの言語も同じ仕様なため割愛します。
ビット演算、関係演算、論理演算、キャスト
ここも特にこれと言って目新しいものはなかったので割愛します。
ここら辺の分野を学習するなら本をちょっと読んで競技プログラミングの問題を解いたほうが理解が早まると思いました。さすがにこのカレンダーに競技プログラミングに参加した旨を書いたら、アドベントカレンダーの趣旨と食い違うため書きません。(たぶん)
最後に
ざっとこんな感じで二日目は終了しました。
割と本が読めたので満足しています。
C#のソースはとてもきれいに書けるので見やすくて個人的には好きになりました。
明日も引き続きよろしくお願いします。