C# によるプログラミング入門
C# によるプログラミング入門です。C# 初心者の方はもちろん、これからプログラミングを始めようという方も対象としています。
章
まえがき
C# の機能一覧(索引的なもの)
- C# の式と文の一覧
- C# の型とメンバー
- バージョン
- C# 1.0
- C# 2.0 の新機能
- C# 3.0 の新機能
- C# 4.0 の新機能
- C# 5.0 の新機能
- C# 6 の新機能
- C# 7 の新機能
- C# 7.1 の新機能
- C# 7.2 の新機能
- C# 7.3 の新機能
- C# 8.0 の新機能
- C# 9.0 の新機能
- C# 10.0 の新機能
- C# 11.0 の新機能
- C# 12.0 の新機能
- C# 13.0 の新機能
- C# 14.0 の新機能
- 言語バージョンの指定
- C#の言語バージョンと.NETバージョン
- 使わなくなった機能・新しい機能
- C#スクリプト実行
- ファイル ベース実行
C# の概要
C#開発環境
基礎
- C#のプログラムの基本構造
- プログラムの作成・実行
- コメント
- 値の入出力
- 変数と式
- [雑記] 識別子名に使える文字
- [雑記] C# ソースコードと Unicode
- 組込み型
- 数値
- 特殊な文字列リテラル
- C# 10.0 の補間文字列の改善
- 組込み演算子
- 組込み型変換
- オーバーフローのチェック
- 定数
- 型推論(暗黙的型付け)と匿名型
- [雑記] 型推論の是非
- [雑記] 識別子のスコープとオブジェクトの寿命
- [雑記] 型の決定
- [雑記] コンパイル結果に影響を及ぼす属性
- [雑記] 明確な代入ルール
構造化
- 構造化
- 制御フロー
- 条件分岐
- 反復処理
- 配列
- 関数
- [雑記] エントリーポイント
- [雑記] インライン化
- [雑記] オーバーロード解決
- 可変長引数
- オプション引数・名前付き引数
- コマンドライン引数
- ライブラリ
- 列挙型
- データの構造化(複合型)
- 名前のない複合型
- 名前空間
- 例外処理
- [雑記] 例外の使い方
- [雑記] 例外のスタックトレース
- [雑記] 式にまつわる補足
オブジェクト指向
- オブジェクト指向とは
- クラス
- コンストラクター
- 実装の隠蔽
- プロパティ
- 静的メンバー
- モジュール初期化子
- 演算子のオーバーロード
- インデクサー
- 継承
- [余談] 暗黙的な派生
- [雑記] 多重継承できない理由
- 多態性
- [雑記] キャストと as
- [雑記] コンストラクター内の仮想メソッド呼び出し
- 抽象メソッド、抽象クラス
- インターフェース
- [雑記] 抽象定義と自動実装
- [雑記] 仮想関数テーブル
- ジェネリック
- ジェネリクスの共変性・反変性
- 【Generic Math】 C# 11 での演算子の新機能
データ型
関数指向
- 関数指向
- デリゲート
- [雑記] デリゲートの利用例
- [雑記] デリゲートの内部
- ローカル関数と匿名関数
- [雑記] 匿名関数のコンパイル結果
- ラムダ式
- イベント
- 【雑記】イベントの購読とその解除
- 関数型言語・動的言語的な機能
- 拡張メソッド
- クラスの機能拡張
データ列処理
- foreach
- イテレーター
- [雑記] 内部イテレータと外部イテレータ
- データ処理
- LINQ
- 標準クエリ演算子(クエリ式関係)
- 標準クエリ演算子(その他)
- [雑記] LINQ と遅延評価
- [雑記] 小さな機能の組み合わせ
- [雑記] O/R インピーダンスミスマッチ
- [雑記] O/R インピーダンスミスマッチ(クラスの継承)
- [雑記] LINQ to SQL 実践編
- [雑記] IQueryable の実装
- 不変(immutable)なコレクション
- インデックス/範囲処理
メモリとリソース管理
- C# のメモリ管理
- 構造体
- 値型と参照型
- readonly の注意点
- 既定値
- 参照渡し
- Span
構造体 - ref構造体
- [雑記] スタックとヒープ
- ボックス化
- null許容値型(Nullable<T> 型)
- null 許容参照型
- null の取り扱い
- リソースの破棄
- ファイナライザー
- [雑記] Dispose にまつわる余談
- 【雑記】弱参照
動的な処理
- 実行時型情報
- 属性
- 式木(Expression Trees)
- dynamic
- dynamic の内部実装
- [雑記] 動的コード生成のパフォーマンス
- [雑記]動的な処理の使い方
- [雑記] 多重ディスパッチ
相互運用
非同期処理
- マルチスレッド
- 非同期処理の種類
- 非同期処理を支えるインフラ
- 実行コンテキスト
- [雑記] スレッド間の競合回避
- [雑記] スレッド プールとタスク
- [雑記] 非同期制御フロー
- 非同期メソッド
- 非同期メソッドの内部実装
- [雑記] 継続と先物
- [雑記] GUI と非同期処理
- 非同期ストリーム
その他
- 型の分割定義 (partial)
- プリプロセス
- XML Document
- “Safe C” としての C#
- 互換性の維持
- [雑記] .NET Compiler Platform
- [雑記] 構文の進化
- パターン ベースな構文
- エントリー ポイント
- コード解析とコード生成
- file ローカル型
- UnsafeAccessor
パッケージ管理
フレームワーク / 実行環境
標準ライブラリ
サンプルプログラム
- C# サンプルプログラム
- [サンプル] SoundLibrary
- [サンプル] イテレータとマイクロスレッド
- [サンプル] クエリ式とリスト内包
- [サンプル] 式木からクエリ式の再構築
- [サンプル] 式木の利用例
- [サンプル] ジェネリックな複素数型
- [サンプル] 式木を WPF で GUI 表示
- [サンプル] SOV 型のメソッド呼び出し
- [サンプル] 透過プロキシ
- [サンプル] 大富豪
- [サンプル] Silverlight サンプル
