セージ の メモ書き

メモこそ命の恩人だ

C#-その他

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# - IL/ILSpy

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

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

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

C# - リフレクション・Type クラス (GetType, typeof, ofType etc.)

リフレクション (Reflection:反映) Type クラス Type の取得方法 typeof 演算子("クラス" から取得) GetType メソッド("インスタンス" から取得) Type の活用例 インスタンスの型を判定 プロパティの一覧を参照 private フィールドに外部からデータを設…

C# - ValueType クラス・ボックス化

ValueType クラス ボックス化 (Boxing) ValueType クラス ValueType クラス (System) | Microsoft Docs [ComVisible(true)] public abstract class ValueType { protected ValueType(); [SecuritySafeCritical] public override bool Equals(object obj); [S…

C# - StyleCop.Analyzers(コード分析)

StyleCop.Analyzers 警告の無効化 手順 StyleCop.Analyzers GitHub - DotNetAnalyzers/StyleCopAnalyzers: An implementation of StyleCop rules using the .NET Compiler Platform StyleCopAnalyzers/documentation at master · DotNetAnalyzers/StyleCopAn…

C# - OpenHardwareMonitor

OpenHardwareMonitor OpenHardwareMonitor https://openhardwaremonitor.org/downloads/ https://github.com/openhardwaremonitor/openhardwaremonitor ハードウェアの状態を取得できる。 機器:CPU、GPU、メモリ、HDD 等 状態:温度、電圧、ファン回転数 等…

C# - SpeechSynthesizer・PromptBuilder

SpeechSynthesizer PromptBuilder 日常会話 その他 補足 Readspeaker (旧 VoiceText) SpeechSynthesizer SpeechSynthesizer クラス (System.Speech.Synthesis) | Microsoft Docs 文字列で指定した音声を鳴らすことができる。 日本語の発音がいまいちかも。細…

C# - LanguageExt

LanguageExt Option クラス 補足 Functional Language (関数型言語) モナド LanguageExt https://languageext.readthedocs.io/en/latest/README.html https://qiita.com/bleis/items/1796c40d6e72eab91359 C# を関数型言語に拡張できるライブラリ。 Nuget パ…

C# - ExpandoObject

ExpandoObject クラス データバインディング ExpandoObject クラス https://docs.microsoft.com/ja-jp/dotnet/api/system.dynamic.expandoobject 動的なプロパティを定義できる。 以下を継承しており、イロイロできそう。(抜粋) IDictionary<string, object> IEnumerable<KeyValuePair<string, object>> </keyvaluepair<string,></string,>…

C# - AttributeUsage 属性 (カスタム属性)

AttributeUsage 属性 (カスタム属性) 使用例 多言語対応 AttributeUsage 属性 (カスタム属性) https://docs.microsoft.com/ja-jp/dotnet/standard/attributes/writing-custom-attributes https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/…

C# - QRコード

ZXing (Zebra Crossing) ZXing.NET QRコードの作成 QRコードの読込 ZXing (Zebra Crossing) https://github.com/zxing/zxing zebra crossing:横断歩道 読み方:ゼブラクロッシング Java 用のバーコード読込ライブラリ ZXing.NET https://marunaka-blog.com/…

C# - ドメイン名の取得

Environment.UserDomainName Domain.GetComputerDomain メソッド Environment.UserDomainName https://docs.microsoft.com/ja-jp/dotnet/api/system.environment.userdomainname 現在操作中のユーザーが属するドメイン名を参照できる。 注意:ドメイン未参加…

C# - Windows サービス

コーディング基本事項 プロジェクト作成 エントリーポイント サービス処理 Windows への反映 サービス登録 サービス解除 デバッグ方法 コーディング基本事項 プロジェクト作成 新しいプロジェクト Visual C# → Windows デスクトップ Windows サービス(.NET …

C# - レジストリ操作

知識 注意:リダイレクト 知識 ルートキー HKEY_CLASSES_ROOT とか。6種類ある。 サブキー あるキーの下にあるキーを「サブキー」と呼ぶ。 注意:リダイレクト Reg addでレジストリの変更が失敗するのってリダイレクトされてるからかも | Tanakanote 症状 6…

C# - アプリケーションの再起動

再起動 再起動 アプリケーション(自分自身)を再起動する - .NET Tips (VB.NET,C#...) App クラスに再起動用のメソッドを定義する。 ミューテックス解除後に起動指示を行うこと。 こんな感じ。 public partial class App : System.Windows.Application { pr…

C# - Guid.NewGuid メソッド

GUID (Globally Unique Identifier) Guid.NewGuid メソッド 実験 GUID (Globally Unique Identifier) GUID - Wikipedia データを一意に識別するために用いる識別子である。 128 bit ( = 16 byte) の数値で構成される。 一意性は保証されていない。(確率的に…

C# - Stopwatch クラス

Stopwatch クラス Stopwatch クラス Stopwatch クラス (System.Diagnostics) | Microsoft Docs 経過時間を計測できる。 Start メソッド / Stop メソッド間の時間を計測できる。 Restart メソッドで時間をクリア後、時間を計測できる。 Stop メソッド後、Star…

SoundPlayer してみる

SoundPlayer クラス 補足:WAVEファイル SoundPlayer クラス SoundPlayer クラス (System.Media) | Microsoft Docs WAVEファイルのサウンド再生を制御するクラス。 再生用に3つのメソッドが用意されてる。 メソッド 同期 or 非同期 内容 Play 非同期 別スレ…

C# - 名前付きパイプ

プロセス間通信を実現する手段の一つ。パイプとは通信路のこと。名前を付けることで、複数のプロセスが同じ通信路でデータを交換できる。

MCP 70-483 ( Programming in C# )

MCP 70-483 ( Programming in C# )は、マイクロソフトが実施する資格試験の一つ。C# をちょっと知ってることを証明できる。

C# - インスタンスのアドレスを表示

アドレスの表示 値渡し 参照渡し 参照の値渡し 必要な知識 unsafe キーワード ポインタ (pointer:指し示す者) & (アドレス演算子) fixed ステートメント * (間接参照演算子) アドレスの表示 ポインターに関連する演算子 - C# リファレンス | Microsoft Docs…