2020-01-01から1年間の記事一覧

Dictionaryの仕組みとGetHashCode

C#

Dictionary<TKey, TValue>へ入れたり取り出したりするとき、こんな感じになっている。 参考:https://referencesource.microsoft.com/#mscorlib/system/collections/generic/dictionary.cs,bcd13bb775d408f1 もしkey1.GetHashCode()の返すハッシュが途中で変わってしまった</tkey,>…

コントラスト比のISO・WCAG基準は不適切(特に白抜きの文字の場合)

文字と背景色のコントラスト比について、ISO/WCAGで推奨値が定められている。解説ページは色々あるが、とりあえずWCAG2.0の日本語訳解説はこちら。ISO-9241-3及びANSI-HFES-100-1988に基づいているとされている。 達成基準 1.4.3 を理解する | WCAG 2.0解説…

SQL Serverの変更検出のメモ

C#

SQL Serverで特定のテーブルに変更が発生したことを検出して色々したい。できれば、どの行が追加/編集/削除されたかが欲しい。 まずクエリ通知というのが見つかる。クエリの結果に変更がある場合に通知してくれるが、どの行に変更があったのかは分からない代…

BinaryFormatterによるDeep Copyと明示的実装の違い

C#

お手軽にDeep Copyを実現するなら、BinaryFormatterが使われることがあるが、かなり処理時間がかかるため、速度を重視するなら明示的にDeep Copyを実装する必要がある。ぶら下がっている型全てで明示的に実装する必要はあるが、大抵は特に問題なく実装できる…

GitHubでコントリビュートする流れメモ

たまにしかやらなくてTFSと勝手が違ってていつも調べるのでメモ。 オリジナルのリポジトリからFork(自分のリポジトリを作成)して、自分のリポジトリからClone(ローカルへ取り込み)する。 自分のリポジトリでPull Request用にブランチを切って作業する。T…

LINQで非同期ラムダを待機する

C#

System.Linq.Asyncのバージョン4.0.0で、LINQの各メソッドに非同期ラムダを受けて待機するバリエーションである~Awaitシリーズが追加された。以前までは自分で用意する必要があって微妙でIssueもいくつか立っていたが、パッケージに含まれるようになったの…

C#アプリのAPIをOPC UAサーバとして公開したいので下調べ

2022/12/19追記 試した結果をまとめました。 qiita.com OPC UAサーバを開発するために情報を集めた。C#アプリケーションのRPC的なAPIを公開することが念頭にあるので、C言語向けだったりPLC向けだったり情報を垂れ流すのみ系は無視している。 OPC UAサーバを…

COMポートの詳細設定画面をC#から開く

C#

COMポート番号を変更したい場合、通常は以下のようにデバイスマネージャから詳細設定画面を開く必要がある。C#のアプリケーションでRS232C接続をする場合、RS232C-USB変換アダプタを使うのが一般的だと思うが、この時COMポート番号が不定になってしまい、環…