これからの時代を担うであろうCSharpについて
この記事はポエムAdvent Calendar 2015の20日目の記事です。
要するにこの記事に書いてあることは嘘混じりなので、信用してはいけません。
CSharpとは
マイクロソフトが開発したマルチパラダイム言語(つまり複数の思想を含んだ言語ということです)です。
特徴としては、強い静的型付けなことによる変数型の推論機能、それによって補完がビシビシ決められるという21世紀に登場した今の最新時代の言語として、申し分ない性能を含んでいます。
旧時代の言語とされるCやC++と比べて、if文内で代入ができなかったり、諸悪の根源であるポインタが言語側で隠蔽されて使用できなかったりと、よりユーザーフレンドリーな言語でもあります。
.NETを使用しているのでウィンドーズでしか使用できませんが、それでもウィンドーズ用にUIを制作するキットが備わっていたりするので、実用性も十分あると思います。
Javaとの比較
Javaとの比較ですが、まず配列において大きな違いがあります。
Javaで2次元配列を作る際には「オブジェクトの配列」を配列にする必要があり、それによって四角形でない配列を作ることもできるのですが、
C#では「オブジェクトの配列」の配列を作ることができないので、四角形でない配列を作ることはできません。
Javaでは
型名 変数名[添字][添字]
とする必要がありますが、C#では
型名 変数名[添字、 添字]
になります。
他に違う場所と言えば、Javaはオブジェクト指向プログラミング言語なので、オブジェクト指向でのプログラミングがメインとなり、カプセル化が重要となるのですが、C♯においてはマルチパラダイム言語なので、それを考慮することなく自由気ままに記述することができます。
言語の詳細
ここからはCSharpが具体的にどうすごいのかということに関して、私のほうからこの言語に備わっているとてもすごい最新の機能を丁寧に紹介していきます。
partial
シーシャープでは物事を構成する単純な要素であるクラスを、2つ以上のファイルに分けて記述することができます。
これによって、UIとUXの分離であったり、2人で共同作業ができたりします。
ジェネリクス
これはC#の中でもすごい感じの機能で、Javaの型消去がある表面上のジェネリクスとは違い、ランタイムレベルでサポートされている機能です。
型情報をそのまま維持しているので、デバッグの際などにはとても有用といえます。
ゲリデート
これは関数をオブジェクトとして扱うことができるようになるもので、メソッドをカプセル化する重要なものです。
C#では特に+=, -=などで複数のデリデートを扱うことができるマルチキャストゲリゲートという機能があるので、とても便利です。
主にイベント駆動による非同期処理などと組み合わせて使われます。
Nulable
C#にはnullを許容できる数値型の, Nullableという変数が導入されています。
int?などと型名のあとに?をつけて使うことができ、これによって負型の整数を扱う必要があるときのマジックナンバーの選定作業から解放されます。
最後に
C#はマイクロソフトのものなのでウィンドーズのVirtualStudioで使う他ありませんが、とても便利な言語なので使う価値はあると思います。
この記事はポエムAdvent Calendar 2015の20日目の記事です。
要するにこの記事に書いてあることは嘘混じりなので、信用してはいけません。