2022-01-01から1ヶ月間の記事一覧

asと()キャストの正しい使い分け方法

C#

asキャストとは asと()キャストの違い 違い①:キャスト失敗時のふるまい 違い②:キャストできる対象のオブジェクト 正しい使い分け方法 asキャストとは C#ではCやC++にはなかったas演算子を使ってキャストをする機能が追加された。 使い方としてはキャストし…

SMB2.0が原因で共有フォルダアクセスが遅い場合の対処法

Windows10ではSMB2.0というファイル転送プロトコルが使われている。 このSMB2.0だがネットワークの負荷を軽減させるためにクライアント側にキャッシュを持たせる機能が入っており、共有フォルダへのアクセスが遅くなる場合がある。デフォルトは10s毎にサーバ…

Roundメソッドを使った正しい四捨五入の実装方法

C#

C#の標準クラスではMath.Roundという数値の四捨五入に使えるメソッドがある。 docs.microsoft.comこのMath.Roundメソッドだがそのまま何も考えずに四捨五入で使うと問題が起きる。 例えば以下のようなケース。 Console.WriteLine(Math.Round(1.5)); Console.…

Enumの要素数を1行で取得する方法

C#

実装時にEnumの要素数を使って何かをしたいケースがよくある。 Enum自体は配列等ではないので、そのままでは要素数にあたるメソッド等は持っていない。 でも1行でカンタンに要素数取得する方法がある。例えばこんなenumの要素数を取得する場合 public enum …

DataGridViewTextBoxにテキストと画像を表示させる方法

C#

DataGridViewTextBoxはテキストだけ表示するのが普通だが、セル内にテキストに加えて画像も一緒に描画したりすることができる。 DataGridViewのCellPaintingイベントで自力描画させれば割とカンタン。 セルを選択時は晴れ、非選択時は曇り画像を表示させるよ…

DataGridViewComboBoxCellを1クリックでドロップダウンさせる方法

C#

DataGridViewの実装でDataGridViewComboBoxCellを使うことがたまにある。 このコンボボックスは普通のSystem.Windows.FormsのComboBoxと仕様が違い、デフォルトだと1クリックではリストがドロップダウンしてくれないのだ。 ドロップダウンしない2回クリッ…