C#(シーシャープ)は、マイクロソフトが開発した言語で、アプリケーション開発やゲーム制作(Unity) に広く使われています。
本カテゴリでは、プログラミングが初めての方でも安心して取り組めるように、基本的な文法から、オブジェクト指向の考え方、アプリやゲームに活かせる実用的なサンプルまでを丁寧に解説します。
「作ってみたい!」を実現できるC#の魅力を、一歩ずつ学んでいきましょう。
導入・基本文法・環境構築
C#の基礎と環境
- C#とは?Javaとの違い・できること・将来性・他言語との違い
- プログラムの基本構造 (using, namespace, class, Main)
- Hello Worldの書き方
- C#と.NETの違い・関係性とは?
- .NET Frameworkと.NET Coreの違い・歴史・最新
- .NET CLRの役割とは?共通言語ランタイムの仕組み
- IL(中間言語)とは?コンパイルの仕組みと実行プロセス
- .NET JITコンパイラの仕組みを徹底解説!実行プロセスと最新の最適化技術
- .NETアセンブリとは?DLLとEXEの違いや仕組み
- .NETのCTS・CLSの仕組みとは?共通型システムと共通言語仕様
- .NET SDKとRuntimeの違いを徹底解説!役割と選び方
- csprojファイルの構造を徹底解説!各項目の意味や書き方
- binとobjフォルダの役割・違いを徹底解説!削除しても大丈夫?
- C# 9 トップレベルステートメントでMainを省略!使い方と制限
- C# 10 global usingでusing句を共通化する方法|定義場所や注意点
- トップレベルステートメントのメリット・デメリットと書き方
- global usingの使い方:共通usingを1箇所にまとめて記述を削減
- Mainメソッドの引数argsとは?コマンドライン引数の取得・解析
- コメントアウトの書き方まとめ!1行・複数行・ショートカット
変数・データ型・演算子
- 変数宣言の基本とデータ型一覧【種類と使い方】
- varはどこまで許される?型推論の使い分けと判断基準
- varとdynamicの違いを徹底解説!型推論と動的型の使い分け
- dynamicで型チェックを回避する方法|使い方と注意点
- 定数(const)の定義方法と使い方|readonlyとの違い
- readonlyの使い方!変数の書き換え禁止とconstとの違い
- constとreadonlyの違いとは?使い分けのポイント
- null許容型とは?null合体演算子??との違いと実践例
- Null合体代入演算子 ??= の使い方を徹底解説!??との違いも
- 三項演算子の基本と書き方|条件分岐を1行で書く
- 型変換を完全解説!キャスト・Convert・Parseの違いと使い方
- キャストとasの違いと使い分け|例外とnullの挙動
- is・as演算子の使い分け|型判定とキャストの違い
- nameof演算子のメリットと使い方|マジックストリングを防ぐ手法
- sizeof演算子の使い方|構造体サイズ取得の注意点とMarshalとの違い
- 整数オーバーフロー制御!checked/uncheckedの使い方と設定
- ref/out/inの違いとパフォーマンス比較|最適な使い分け
- 参照渡し(ref)のコストとは?値渡しとの比較と最適な使い分け
- in修飾子の使い方|読み取り専用参照渡しのメリットと注意点
- out引数とタプルを徹底比較!複数の戻り値を返す最適な使い分け
- outパラメータの使い方|未初期化変数のエラー回避とout var宣言
- params(可変長引数)の使い方完全ガイド
制御構文
- if文の使い方入門|基本構文から応用まで
- switch文の使い方入門|複数条件・文字列・パターンマッチ
- for文の書き方入門|繰り返し処理
- foreach文入門|配列・Listを安全にループする
- while文の基本構文と使い方を図解でやさしく解説
- do-while文の使い方!while文との違いや具体例
- for文とwhile文の使い分け!違いと使い時の判断基準
- yield returnの仕組みと使い方を徹底解説!イテレータの動作原理
- yield breakで列挙を終了する方法!returnとの違い
- is演算子とパターンマッチングを徹底解説!型判定から応用まで
- is演算子で型チェック!パターンマッチングの使い方
- パターンマッチングとswitch式の活用術!実例で学ぶ効率的な書き方
- プロパティパターンで条件分岐を簡潔に!書き方と活用例
- タプルパターンの判定方法|switch式など具体例
- 関係パターンで範囲指定する方法|switch/if文での記述例
- 【C#11】リストパターンの使い方を解説!配列・Listのパターンマッチング
文字列処理 (System.Text)
基本操作
- Console.WriteLineとは?標準出力の基本から応用まで
- Console.ReadLine入門|文字列・数値入力の扱い方
- 文字列補間($"…")で変数を埋め込む書き方
- 文字列補間($)の書式指定まとめ|数値・日付・桁揃え
- string.Formatと文字列補間の違いは?速度比較と使い分け
- String.Formatの使い方|書式設定と文字列埋め込み
- 文字列から数値へParse変換する
- Splitで文字列を分割する方法|複数文字・空白削除
- Splitで複数の区切り文字を指定する方法!文字列や正規表現
- Splitで空白を削除!RemoveEmptyEntriesの使い方
- string.Joinで文字列を結合・連結する方法!配列やリスト
- string.Joinで配列やリストを区切り文字で結合・連結する
- 文字列連結を高速化!ConcatやStringBuilder速度比較と最適手法
- 大文字・小文字に変換!ToUpper/ToLowerの使い方
- Trimで空白削除!前後の除去やReplaceでの全削除
- 文字列を置換・切り出し!ReplaceとSubstring
- 文字列を後ろから切り出す方法!SubstringとRangeの使い方
- Removeメソッドで文字列を範囲指定して削除する方法
- 文字列を挿入するInsertメソッドの使い方!指定位置に追加する方法
- 文字列の先頭・末尾判定!StartsWith/EndsWith
- Containsで文字列の含む判定!大文字小文字の区別や複数条件
- Containsで大文字小文字を区別しない方法!効率的な書き方と判定
- string.Equalsで文字列比較!==との違いや大文字小文字無視
- String.Compareで文字列比較!使い方と大文字小文字の区別
- CompareToで辞書順に比較する方法!戻り値やソート順
- 大文字小文字を無視して比較する方法!StringComparisonの使い分け
- 文字列比較を高速化!StringComparisonの種類と速度比較
- IndexOfで文字列の最初から出現位置を検索する方法
- LastIndexOfの使い方|文字列を最後から検索する方法
- LINQ Anyで特定の文字が含まれるか判定する方法
- PadLeft/PadRightでゼロ埋め・右詰め・左詰めする方法
- PadLeftでゼロ埋めする方法|桁数指定の書き方
- PadRightの使い方|右側を空白や指定文字で埋める方法
- charとstringの違いを徹底解説!使い分けから相互変換まで
- 文字列を文字配列に変換するToCharArrayの使い方
- string.IsNullOrWhiteSpace空白チェックと違い
- string.IsNullOrEmptyで空文字チェック!null判定や違い
- Range(範囲演算子)とIndex(^)の使い方!配列の切り出し
- 文字数とバイト数の違いを解説!LengthとEncodingの使い分け
- 全角・半角変換!StrConv関数の使い方とVB機能の導入手順
- String.Normalizeで濁点の分離を解決!NFC/NFD正規化
高度な操作・エンコーディング
- StringBuilderで文字列連結を高速化!性能比較と最適な使い方
- string vs StringBuilder比較!速度と使い分け
- UTF-8とShift-JISを相互変換する方法!
- Shift_JIS読み込み|Encoding.GetEncodingの使い方とエラー対策
- 文字列とUTF-8バイト配列を相互変換する方法(Encoding.UTF8)
- 文字列とバイト配列を相互変換する方法!Encodingでの文字コード指定
- Base64エンコード・デコードする方法!
- 画像をBase64エンコード・デコード(相互変換)する方法
- Base64をデコードして文字列に変換する方法!文字化け対策
- StringWriterとStringReaderの使い方・活用法
- 【C#11】生文字列リテラルの使い方:複数行やJSONを簡単に記述する
- 【C#11】生文字列リテラルでJSONを扱う!エスケープ不要な書き方
- 逐語的文字列リテラル(@)の使い方|エスケープ不要でパスや改行を記述する
- Unicodeエスケープシーケンスの使い方と相互変換
- C#11の新機能「u8リテラル」|UTF-8文字列の効率的な書き方
正規表現
- 正規表現の基本と便利な使い方
- Regex.IsMatchの使い方!正規表現でパターン一致を判定する
- Regex.IsMatchの使い方!正規表現で一致を確認する方法
- Regex.Matchで文字列を抽出する方法!正規表現とGroup取得
- Regex.Matchesで正規表現に一致する全文字列を取得する
- Regex.Replaceで正規表現置換!基本から応用まで
- Regex.Splitで文字列分割|正規表現の使い方と複数条件
- Regex.Escapeで正規表現の特殊文字をエスケープする方法
- Regex高速化|Compiledの効果とソース生成器の使い分け
- 正規表現のメタ文字一覧と使い方
- 正規表現で繰り返し回数を指定する方法|量指定子の使い方
- 正規表現の文字クラス否定「[^…]」の使い方と否定形クラス
- 正規表現のグループ化とキャプチャ!名前付きグループで値を取得
- 正規表現でOR(または)条件を指定する方法|複数一致や記法
- 正規表現の特殊文字・文字クラス一覧|Regexクラスの使い方
- 正規表現で大文字小文字を無視する方法|判定・置換・インライン指定
- 正規表現 名前付きグループの使い方と抽出方法
数値計算 (System.Math / System.Numerics)
コレクションとデータ構造
オブジェクト指向プログラミング (OOP)
メンバ(プロパティ・メソッド)
継承・ポリモーフィズム・インターフェース
