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