セージ の メモ書き

メモこそ命の恩人だ

C#

C# - 円高・円安

円高・円安 為替レート メリット C# [ドル → 円] 換算 [円 → ドル] 換算 円高・円安 円高、円安とは何ですか? : 日本銀行 Bank of Japan 円の他通貨(米ドル、ユーロ etc.)に対する相対的価値。 相対的な価値なので... *円なら円高・円安ではない。 その…

C# - 例外の再スロー

再スロー方法 再スロー方法 try { // ... } catch (Exception ex) { throw; // throw ex; // ↑注意:この場合、スタックトレースが消える。 } catch 句の中で throw を呼び出すだけ。 呼び出し元のメソッドに例外が伝わる。スタックトレースも保持。 以下、…

C# - Exception クラス(よく使うクラス)

個人的によく使う例外クラス 引数 ファイル/フォルダー コレクション その他処理 上記の例外クラスの継承関係 catch 句と継承関係 catch 句は継承関係の順に定義する catch 句は基底クラスを検知できる 個人的によく使う例外クラス 個人的に、よく使用する…

C# - Moq

Moq Mock クラス メソッドのモック プロパティのモック xUnit の使用例 DB アクセス Moq テストダブル用のライブラリ。.NET用。 テストダブル (Test Double)、Double : 代役、影武者 テスト対象が依存するモジュールの代役となるオブジェクト。 スタブ、モッ…

C# - xUnit

xUnit セットアップ プロジェクトの追加 テストクラスの追加 テストメソッド Fact 属性 Theory 属性 InlineData 属性 MemberData 属性 ClassData 属性 テストメソッド(オプション) DisplayName 属性 検証メソッド ITestOutputHelper インターフェース テス…

C# - NLog.Extensions.Logging

NLog.Extensions.Logging ロガーの利用方法 static オブジェクトの利用 汎用ホストの利用 NLog.Config の設定方法 targets タグ xsi:type xsi:type="File" 用のパラメータ name fileName layout archiveAboveSize maxArchiveFile archiveOldFileOnStartup ar…

C# - Microsoft.Extensions.Logging

Microsoft.Extensions.Logging ロガーの利用方法 static オブジェクトの利用 汎用ホストの利用 汎用ホストの利用(WPF) Microsoft.Extensions.Logging www.nuget.org docs.microsoft.com ロギング用のライブラリ。 ILogger インタフェースにロガーを注入し…

C# - MTBF/MTTF/稼働率

MTBF/MTTF 稼働率 稼働率と復旧時間 MTBF/MTTF 名称 意味 算出方法 MTBF (Mean Time Between Failure) 平均故障間隔 稼働時間の合計 / 稼働回数 MTTR (Mean Time To Repair) 平均復旧時間 復旧時間の合計 / 故障回数 信頼性を示す指標の一つ。 算出方法は…

C# - OpenWeatherMap

OpenWeatherMap API キーの取得 API の利用方法 C# からの利用 OpenWeatherMap openweathermap.org 気象データを取得できるサービス。 WEB API により取得。API キーの取得が必要。 都市名や郵便番号などを指定して取得できる。 API キーの取得 OpenWeatherM…

C# - null 許容参照型

null 問題 null 安全 null 許容参照型 null 問題 アントニー・ホーア - Wikipedia アントニー・ホーア氏が null 参照を発明。 2009年のカンファレンスにて、null 参照を発明したことを謝罪。 それは10億ドルにも相当する私の誤りだ。null参照を発明したのは1…

C# - global using ディレクティブ

global using ディレクティブ 暗黙的な global using コンソール ASP.NET MVC WPF Form global using ディレクティブ docs.microsoft.com global 修飾子を using ディレクティブに追加すると、該当プロジェクトの全ファイルに using が適用される。 global …

C# - バイト配列の操作

概要 データ参照 ArraySegment 構造体 範囲指定のインデックス Skip・Take メソッド データ作成 概要 バイト配列を扱う例 ネットワークで受信したバイトデータ ファイルから読み込んだバイトデータ 周辺機器から読み込んだバイトデータ エンディアンも参照 C…

C# - init 専用セッター

init 専用セッター 初期化の順序 init 専用セッター docs.microsoft.com public 型 プロパティ名 { get; init; } C# 9.0 以降で使用できる。 プロパティの初期化をオブジェクト生成時に制限できる。 get プロパティのみが最も制限が強い。 init 専用セッター…

C# - レコード型

レコード型 継承 値オブジェクト with 式 レコード型 docs.microsoft.com // 形式1(位置指定構文) public record レコード名(型 プロパティ1, 型 プロパティ2, ...); // 形式2(位置指定構文+追加定義) public record レコード名(型 プロパティ1, 型 プ…

C# - is 演算子

型判定 キャスト パターンマッチング 論理パターン(and/or/not) プロパティパターン リストパターン docs.microsoft.com 型判定 型が一致する場合、true を返す。 基底クラスの場合、true と判定される。 アップキャストできるか判定できる。 インスタン…

C# - switch 式

switch 式 { } 判定 比較演算判定 プロパティ判定 プロパティ判定+比較演算(when) タイプ判定 switch 式 docs.microsoft.com x switch { ... }; C# 8.0 以降で使用できる。 switch 文よりも簡潔に書ける。case・break 不要。 判定機能も従来よりかなり充…

C# - 最上位レベルステートメント

最上位レベルステートメント args 引数 await キーワード フレームワークごとのエントリーポイント コンソール ASP.NET Core MVC WPF Form 最上位レベルステートメント docs.microsoft.com C# 9.0 以降で使用できる。 main メソッドから外側の記述を省略でき…

C# - 正規表現

Regex クラス IsMatch メソッド Match メソッド Matches メソッド Replace メソッド Split メソッド RegexOptions 列挙値 大文字/小文字の区別 複数行モード 正規表現の記号 文字 繰返し 境界 グループ エスケープ 活用例 Matches メソッド タグ ファイルパ…

C# - Path.Combine メソッド

Path.Combine メソッド 注意:先頭文字が "\" の場合 Path.Combine メソッド Path.Combine メソッド (System.IO) | Microsoft Docs 複数の文字列を結合し、ファイルパスを生成できる。 結合時、"\" が自動的に挿入される。 文字列の終端に "\" がない場合、…

C# - 2進数リテラル/ビット演算

2進数リテラル ビット演算子 活用例 指定位置のビット状態をOFF 指定位置のビット状態をON 指定位置のビット状態を取得 2進数リテラル 先頭に "0b" を付与すれば、2進数として表現できる。 アンダーバー "_" で値を区切ることもできる。 可読性が向上する。 …

C# - 浮動小数点型(float/double/decimal)

浮動小数点 (floating point number) 循環小数による誤差 指数表記(E 表記) 浮動小数点型(float/double/decimal) float double decimal 注意 小数の一致判定 実験 キャストの処理時間 浮動小数点 (floating point number) 表現方式 小数点の位置 利点 …

C# - エンディアン/BitConverter クラス

エンディアン BitConverter.IsLittleEndian フィールド BitConverter クラス プリミティブ型 → バイト配列 バイト配列 → int エンディアン Endian : "ガリヴァー旅行記の小人国" が語源。 "バイトオーダー" とも呼ぶ。 複数バイトのデータを扱う際のデータの…

C# - "10進数→2進数" の変換

Convert.ToString メソッド 変換の考え方 整数の場合 小数の場合 Convert.ToString メソッド docs.microsoft.com 指定した値を*進数に変換できる。(*:2/8/10/16) 整数のみ変換できる。小数は変換できない。 int value = 26; Debug.WriteLine(Convert…

C# - 整数型(byte/short/int/long/nint)

整数 (Integer) 整数型(byte/short/int/long/nint) nint 実験 処理速度 整数 (Integer) 整数とは、以下の総称である。 正数(1, 2, 3, ...)、"自然数" とも呼ぶ。 0 負数(-1, -2, -3, ...) "整" は、半端な数値でないことを意味する。 きりの良い数…

C# - オーバーフロー/アンダーフロー/checked キーワード

オーバーフロー/アンダーフロー プロジェクトの設定変更 checked キーワード checked ブロック checked 式 豆知識 オーバーフローによる無限ループ オーバーフロー/アンダーフロー 状態 内容 オーバーフロー 格納領域よりも大きい値を格納すること。 アン…

C# - Floor/Ceiling/Round メソッド

Floor メソッド ( Floor : 床 ) 切り捨て処理 Ceiling メソッド ( Ceiling : 天井 ) 切り上げ処理 Round メソッド ( Round : 丸める ) 四捨五入 銀行丸め Floor メソッド ( Floor : 床 ) docs.microsoft.com 指定値以下の 最大の整数 を返す。 この機能を "…

C# - エスケープシーケンス/@逐語的リテラル文字/$文字列補間

エスケープシーケンス @ 逐語的リテラル文字 「"」のエスケープ処理 $ 文字列補間 「{ }」のエスケープ処理 $ と @ の併用 エスケープシーケンス docs.microsoft.com "\" と文字の組み合わせ。 エスケープ文字とも呼ぶ。 特殊な意味を表現する。 (抜粋) エス…

C# - IPAddress クラス

IPAddress.TryParse メソッド ローカルIPアドレスの取得 豆知識 IPアドレス 169.254.xxx.xxx (リンクローカルアドレス) IPアドレス 127...* (ループバックアドレス) hosts (ホスツ) IPAddress.TryParse メソッド IPAddress.TryParse メソッド (System.Net) |…

C# - IL/ILSpy

IL (Intermediate Language:中間言語) ILSpy IL (Intermediate Language:中間言語) 共通中間言語 - Wikipedia 言語 処理 高級言語 - IL (中間言語) "MSBuild" により、高級言語から生成 マシン語 "JITコンパイラー" により、中間言語から生成 特徴 Visual…

C# - シャローコピー・ディープコピー

シャローコピー (Shallow:浅い) ディープコピー (Deep:深い) シリアライズの場合 Json.NET ライブラリ (オススメ) DataContractSerializer クラス BinaryFormatter クラス リフレクションの場合 コピーコンストラクタの場合 補足 Object.MemberwiseClone …