C#のtry~catch~finallyの使い方

C#

C#のtry ~ catch(+ ~ finally)構文の使い方について紹介したいと思います。 この構文は、(1)通常処理するtry節、(2)例外が起きた時にそれを処理するためのcatch節と、(3)tryを抜ける時に必ず実行されるfinally節で構成されます。 と言っても構文自体は…

LogicoolのゲーミングマウスG403を10か月使った感想

ロジクールのゲーミングマウス、G403のワイヤレス版のG403WLを10か月使った感想とレビューを紹介したいと思います。 【PUBG JAPAN SERIES 2018推奨ギア】LOGICOOL ロジクール G403 Prodigy ワイヤレスゲーミングマウス G403WL出版社/メーカー: ロジクール発…

IIJmioのSIMサイズ変更の方法と到着日数(マルチSIM対応最新版

IIJから提供されるSIMのサイズ変更の方法と、到着日数の紹介をしたいと思います。 IIJのSIMサイズは2018年9月現在、「マルチSIM」となっています。マルチSIMとは以下のように、一枚のSIMでnano SIM/micro SIM/標準SIMの3サイズに対応できるSIMカードの事です…

階層型状態マシン(HFSM)を実装する

GoF のデザインパターンで State パターンを階層化した、階層型有限状態マシン(HFSM:Hierarchical Finite State Machines)を作成してゲーキャラクターの制御を行ったので実装例を紹介したいと思います。「階層型のステートマシン」なんて言ったりもします…

【C#】OpenCVを使って画像から線画を抽出する

Qiitaの以下投稿でPythonを使用して画像から線画を抽出するという処理を見たのですが、この処理をC#で書き直したらどうなるかどういうコードになるか確認してきたいと思います。 qiita.com 元のコードの確認 まず対象のコードの確認です。 以下Qiitaからの引…

OpenCvSharpで画像データを高速に設定、取得する

C#のOpenCVライブラリのOpenCVSharp3でMatに高速でデータ読み書きする方法の紹介です。 高速にデータの読み書きをするためにMat.Data : IntPtr を利用してデータの読み書きを行いたいと思います。 使用しているライブラリは、OpenCvSharp3(ver. 3.4.1.20180…

C#の変数の内部表現を確認する

C#

普段使用しているCPUは、最近はMacもインテルのCPUなので、バイトオーダーは「リトルエンディアン」が主流です。 エンディアンの詳細はさておき、つまり、2バイトデータの中身が、「0x 12 34」となっていた場合メモリのレイアウトは 「0x 34 12 」と逆順にな…

ACジャパンのセーブ・ザ・チルドレンが炎上した件について

ACジャパンが支援する「子ども支援の国際NGOであるセーブ・ザ・チルドレン」広告が炎上しているようです。 どうも広告内に設問があったのですがそれが難しすぎるとの事です。 まず、問題を確認する前に、広告の内容や意義や目的の説明を見ておきましょう。以…

C#のBigInteger型で超巨大な数字を扱う

C#の組み込み型で最も大きい値を扱える型は、double型です。最大値は、1.7x 10の308乗とありますが、浮動小数点の精度の関係で実際扱える有効桁数が17桁程度なので極大の数値に対し有効桁外の演算を行うと計算結果に反映されない…みたいな状態になります。 …

C++でC#ライクなプロパティを実現する

C#ではプロパティ構文というものがあります。これは、オブジェクトのメンバーへのアクセスを行うための、アクセッサー(setter/getter)をあたかも変数へのアクセスと同様に行える仕組みです。 // C#のプロパティ public class CSharpProp { // 一番簡単なプ…

C#の組み込み型の値の範囲の確認

C#

C#で最初から使用できる型を組み込み型と言います。 範囲使用できる範囲をすぐ忘れてしまうので自分のためにまとめてみました。 C# は int や double など、他の型のある言語で利用できる型がC#にも用意されています。組み込み型の特徴は以下の通りです。 .N…

ひし形と点の当たり判定を行う

今回は、ひし形(というか任意の4点からなる四角形)と、ある点の衝突判定を行いたいと思います。 判定処理の概要ですが、以下図の通り任意の4点 A ~ D をそれぞれを線で結び四角形とし、そこに点 P を与え、それぞれ四角形の内(=衝突している)外(=衝…