C#とは以下のことを指す。
この記事ではプログラミング言語 C#について扱う。
Microsoft社が提唱して生まれた言語。ISOやJISにも標準規格として登録されている。 名前の由来は C++ (しーぷらすぷらす) をさらにインクリメント(進める)して C++++ とし、それでは見づらいので 2x2に並べて C#としたらしい。 なお、本来#はナンバーの意味で、半音上を表す♯とは違う記号であるが、便宜上半角の#(ナンバー)を用いることになっている。
言語的特徴として、(初期バージョンでは)JavaとC++(そしてDelphi)の分かりやすいところと便利なところをそれぞれ採用した形(+α)となっている。また、.NET Frameworkの機能が生きるようにデザインされている。バージョン3.0や4.0では関数型言語や動的言語由来の機能を多く取り込んでいる。
「howからwhatへ」という主義を掲げ、開発者が行いたいこと(what)を可能な限りそのまま書けるように言語仕様を進化させている。アプリケーション開発に置いて需要が高い割に面倒の多いGUI開発と、データアクセスに関する機能が特に多い。
GUI開発向けの機能としては、デリゲート(関数ポインターのオブジェクト指向版)やイベント(イベントハンドラーの追加・削除を行うための仕組み)などがあげられる。
データアクセス向けの機能としては、LINQ(Language Integrated Query)と呼ばれる機能があり、並列処理を見こしたデータ操作を、意図通りに書くことができる。
一方で、パフォーマンスへの配慮から、ポインターなどの低級(CPUの実動作に近いという意味)な機能も(限定的な文脈下でのみ)サポートしている。ただし、パフォーマンス上の理由でポインターが必要とされる場面はほとんどない。
namespace Niconico
{
class NicoVideo
{
static void Main(string[] args)
{
System.Console.WriteLine("Hello NicoNico!");
}
}
}
掲示板
91 ななしのよっしん
2022/10/19(水) 04:33:46 ID: ulPwLxPvaA
実はWindowsならcsc.exeでコンパイルできるから開発環境無くてもプログラミング出来る言語。
会社のインストール禁止PCで業務効率化プログラムを作りたい時とか本当に役立つわ。エディタはWEB版vscode使えば良いし。
92 ななしのよっしん
2023/04/17(月) 09:10:47 ID: WiBOoq0EH3
オブジェクト指向やるにはかなりいい言語じゃないかと思う。
ドメイン駆動設計の値オブジェクトと完全コンストラクタくらいしか知らないが、不正値の弾き出しの考え方が落とし込みやすい。
93 ななしのよっしん
2023/05/21(日) 18:07:32 ID: ZAFeZqZeGG
AtCoder等でこの言語使っている人って入力受け取りどうやってんだ?
IEnumerable型の値をValueTuple構造体に直接変換できないし…
Javaを意識した言語というわりにはScannerに相当するものが無いし…
急上昇ワード改
最終更新:2024/09/07(土) 20:00
最終更新:2024/09/07(土) 19:00
スマホで作られた新規記事
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。