[C#] 1. C#とは?


Study / C#    作成日付 : 2019/07/01 23:32:22   修正日付 : 2021/07/06 19:24:19

こんにちは。明月です。


この投稿は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#を混在して使う時もあります。

でもその特徴で必ずJavaはウェブ、C#はウィンドウフォームで開発することではありません。ただ、仕様の状況、環境の設定により影響がたくさんあるので、何がよいか悪いかを決めることではありません。


C#というプログラムは.Net Frameworkの上で動いています。.NetFrameworkはウィンドウOSしかないのでLinuxやウィンドウ以外の環境では開発ができません。(最近はコアー(Core)というLinuxライブラリもありますが、一般的な状況じゃありません。)

フレームワークとはC言語みたいに開発の環境によりすべてを開発することではなく、基本的なライブラリや基盤に関してはフレームワークにすべて開発しているので、C#にはAPIとして取得して使う形で開発します。それをCLR(Common Language Runtime)といいます。

CLR(Common Language Runtime)とは.Net系の言語(VB.Net、C#.Net、C++.Netなど)の仮想マシンの構成要素です。

仮想マシンとはプログラムのメモリ管理(インスタンス生成及び解除)するし、様々なコンポーネントを提供して開発をしやすくするフレームワークです。


なのでプログラムの開発の勉強をCとC++よりしやすいし、開発生産性を上げる特徴を持っています。


現在(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#バージョン別でできることがあるしできないことがありますが、特にバージョン別に開発することではないなら最新バージョンを使うことが良いです。


これからC#の基本文法とライブラリを使う方法、ウィンドウ開発やウェブ環境で開発する方法に関して説明します。


ここまでC#とはに関する説明でした。


ご不明なところや間違いところがあればコメントしてください。

#C#
最新投稿