2016年5月10日火曜日

[C#] C#とは?

こんにちは。明月です。
今日はC#を勉強する前にC#について説明します。


プログラム言語はC、C++、Java、C#など様々な言語があります。
言語の誕生時期はC言語が一番早いし、次はMicrosoftからウィンドウ開発をしやすくするC++(MFC)、プログラムについて少しでも勉強したら聞いたかも知らない言語のJava、その次がこれから勉強しようと思うC#の順になります。


誕生時期を見るとC#は上の4つの言語の中で最後になりますが、最後に誕生したから一番いい言語では思わられませんね。プログラム言語は各特徴があり、開発状況のたびに使う方法が違うと思います。


各言語について簡単に説明するとC言語の場合はハードウェア系とOS系(カーネル)、ドライバー系で主に使うし、C++(MFC)はグラフィック系またはC#で実装が大変な部分、C#よりメモリ管理が厳しい環境で使いますね。
Javaの場合はネットワークのウェブ系、アンドロイドモバイル系で使うし、C#はネットワークサーバクライアントウィンドウ(CS)系でよく使います。機能として使うところはそのとおりですが、プロジェクトの予算、環境などの影響でウィンドウプログラムをJavaで開発するし、C++とC#を混在して使う時もあります。


C#は.Net Frameworkの上で動いています。.NetFrameworkはウィンドウOSしかないのでLinuxやウィンドウ以外の環境では開発ができません。
現在(2016年5月).NetFrameworkのバージョンは4.6まで発表してC#のバージョンは6.0まで発表しています。


C#のバージョン別で説明すると下記のとおりになります。


C# バージョン 重要機能
C# 2.0
  • C# Generics
  • Anonymous Method (匿名メソッド)
  • Nullable Type
  • Partial Type
  • C# yieldキーワード
  • DelegateについてCovariance/Contravariance
C# 3.0
  • Lambda Expression (ラムダ)
  • Anonymous Type (匿名タイプ)
  • Extension Method (拡張メソッド)
  • C# var キーワード (implicit type)
  • LINQ
  • Expression Tree
C# 4.0
  • C# dynamic (Late binding)
  • Named Argument
  • Optional Argument
  • Indexed Property
C# 5.0
  • C# async / await
  • Caller Information
C# 6.0
  • Null-conditional operator(Null条件演算子)
  • String Interpolation(文字列挿入機能)
  • Dictionary Initializer
  • nameof 演算子
  • using static 文
  • catch/finally のブロックでawait 使用
  • Exception Filter 支援
  • Auto-Property Initializer(自動プロパティー初期化)
  • Getter only(読み専用プロパティ)
  • Expression-bodied member 使用
  • 構造体基本コンストラクタ

これからはC#について勉強すると思いますが、流れとしては初めに基本文法からバージョン別文法、コーディング規約をして後はデータ処理、ウィンドウ開発、ネットワーク開発など順に投稿すると思います。


予定のことを見ると面白そうですね。(笑)もし間違い部分、日本語がおかしい部分があれば指摘をお願いします。

0 件のコメント