文字列

【C#】TryParseで文字列を安全に数値変換する方法と失敗時のハンドリング

文字列を数値に安全に変換したいなら、int.TryParseなどのTryParse系が最適です。 bool値で成功可否を受け取り、成功時はout引数に値が入り、失敗しても例外が出ず処理を続行できます。 intだけでなくdoubleやdeci

続きを読む »
文字列

【C#】文字列を安全に数値へ変換し16進数で出力する方法とコツ

C#では文字列を数値へ安全に変換するにはint.TryParseを使い、成功時に得たint値をToString("X")で16進数へ一発で変換できます。 例外を避けられ、ユーザー入力やファイル読込後の値をそのまま16進表示へ流せるので効率的

続きを読む »
ファイル

【C#】INIファイルへ書き込みする最短ステップと実用サンプル集

C#でINIファイルへ値を書き込む最短手段は、Windows API WritePrivateProfileStringをP/Invokeで呼び出すか、NuGetのIniParserなどを使う方法です。 セクション・キー・値を渡すだけで保存

続きを読む »
文字列

【C#】LengthとStringInfoでわかる文字列の長さ計測とUTF-8バイト数取得の基本

C#で文字列の長さを知りたいときはLengthを確認すれば完了です。 多言語絵文字や異体字などサロゲートペアを含む場合は、new StringInfo(text).LengthInTextElementsで実際の文字数を数えると安全です。

続きを読む »
例外処理

【C#】InsufficientExecutionStackExceptionの原因・発生条件と再帰処理を安全に書き換える対処法

InsufficientExecutionStackExceptionは.NET実行時にスタック領域が不足した瞬間に投げられる例外です。 主因は無限再帰や極端に深い再帰で、catchはほぼ効かないため再帰深度の制限やループへの書き換えで防ぐ

続きを読む »
例外処理

【C#】IndexOutOfRangeExceptionの発生原因と安全に防ぐ実践テクニック

C#でIndexOutOfRangeExceptionは、配列やListなどのインデックスが0以上要素数未満という有効範囲から外れた瞬間に発生し、プログラムを停止させます。 発生を防ぐにはLengthやCountで事前に範囲を確認するか、f

続きを読む »
例外処理

【C#】HttpListenerExceptionの原因と対処法まとめ―ポート競合・権限不足・URL形式エラーを詳しく解説

C#のHttpListenerExceptionは、HttpListenerがポートの占有や権限不足、URL形式ミスなどでリクエスト受付に失敗した時に投げられます。 管理者権限起動、未使用ポート選択、listener.Prefixesの見直

続きを読む »
例外処理

【C#】HostProtectionExceptionの原因・対処法・安全に権限を緩和する方法

HostProtectionExceptionは、.NETホストが危険とみなす操作をアプリが実行しようとすると発生する例外です。 SQL Server CLRなど制限付き環境でスレッド生成、ソケット通信、ファイルI/Oを呼ぶと出やすいです。

続きを読む »
変数

【C#】String Interpolation(文字列補間)の使い方と高速化テクニック

C#の文字列補間は、先頭に$を付けた文字列に変数や式を{}で直接埋め込む仕組みです。 可読性が高まり+連結やString.Formatより高速になり、複雑なロジックも簡潔に記述できます。 中括弧を文字として出したい時は{{と}}でエスケープ

続きを読む »
日時

【C#】DateTimeとTimeSpanで日付を加算・減算する基本テクニック完全解説

C#ではDateTimeのAddYears AddMonths AddDaysなどに正負の値を渡すだけで日時を前後へ動かせます。 さらにTimeSpanを使いnow + spanやend - startと書けば演算子で加算減算や差分取得も簡

続きを読む »
変数

【C#】Raw文字列リテラルと@文字列で実現する複数行文字列の書き方・注意点

複数行文字列を扱うなら、最も手軽なのは"""で囲むRaw文字列リテラル(C# 11以降)で、改行やエスケープを気にせず記述できます。 従来は先頭に@を付けるVerbatim文字列で改行を直接入れるか+ Environment.NewLine

続きを読む »
日時

【C#】DateTimeを自在にフォーマットする方法まとめ—標準書式・カスタム指定子と実践テクニック

DateTime型はToStringに書式指定子を渡すだけで和暦、ISO8601、年‐月‐日 時:分:秒などを自在に整形できます。 標準指定子は短く、カスタム指定子は自由度が高いので場面に応じた表示が簡単です。 ログやUIの統一、並べ替えに

続きを読む »
アーカイブ

【C#】GZip解凍のやり方:標準ライブラリとNuGet活用での実装ポイント

C#なら標準のSystem.IO.Compression.GZipStreamで.gzを素早く展開できます。 FileStreamで圧縮ファイルを開き、new GZipStream(fs, CompressionMode.Decompres

続きを読む »
アーカイブ

【C#】GZipStreamでファイルを簡単高速に圧縮・解凍する方法と実装ポイント

標準のSystem.IO.Compression.GZipStreamを使えば数行でファイルやストリームを高速かつ可逆に圧縮・展開でき、外部ライブラリ不要で配布サイズも増えません。 読み書きはCopyToで完結し、非同期版やSpan<

続きを読む »
配列&コレクション

【C#】HashtableとDictionaryの違いを初心者にもわかりやすく比較!型安全・速度・例外処理まで

Dictionary<TKey, TValue>はジェネリックで型安全、ボクシングが不要なぶん高速で、存在しないキーを読むとKeyNotFoundExceptionになります。 一方Hashtableは非ジェネリックで型変換コス

続きを読む »
例外処理

【C#】InvalidTimeZoneExceptionの原因とクロスプラットフォームで失敗しないタイムゾーンID対策

InvalidTimeZoneExceptionは、TimeZoneInfo.FindSystemTimeZoneByIdに渡したIDがOSに存在しないか破損しているときに発生します。 WindowsとLinuxでIDが異なる点が主な落とし

続きを読む »
例外処理

【C#】InvalidProgramExceptionエラーの原因と対処法まとめ

InvalidProgramExceptionはCLRが壊れたILや不正なメタデータを検出した際に発生する例外です。 ビルド設定のx86/x64不一致、破損DLL、動的コード生成バグなどが主因となるため、プラットフォーム統一、参照DLLの置

続きを読む »
例外処理

【C#】InvalidOperationExceptionの原因と対処法まとめ―スレッドからコレクション操作までやさしく解説

InvalidOperationExceptionは、メソッド呼び出し時に対象オブジェクトの状態が操作に適さないときに発生する例外です。 UIスレッド外からのコントロール更新、列挙中のコレクション変更、Nullable<T>のn

続きを読む »

【C#】文字列補間式の進化とバージョン別機能まとめ

C#の文字列補間式はC#6.0で追加され、$"{}"構文によって可読性と保守性が大きく向上します。 C#10ではraw文字列リテラルと併用しやすくなり、C#11では書式指定が強化されました。 従来のstring.Formatよりシンプルでエ

続きを読む »
Back to top button