.NET Framework

C#の最新版(C#7.3などを)を使用する方法

2018年6月2日現在、VisualStudioの.NETのC#プロジェクトでC#7.3などの最新のC#規格を利用可能にする方法を紹介したいと思います。(何故か、C#7.0までの構文しか使えず調べるのに手間取ってしまったのでやり方のメモとなります。) C#のバージョンの選択方法…

C#でFizzBuzzを実装する

FizzBuzzの問題を解くこと自体、やり尽くされた感がありますが、自分で書いたものを記事にしたことが無かった気がしたのでチャレンジしてみようと思います。 実装した環境はVS2017(15.7.2) + .NET4.7.2 (≒C#7.2)です。(C#6.0であれば問題ないので新しい環境…

C#びDictionaryで自作オブジェクトをキー:TKeyに使用する

C#のDictionaryのTKeyにオブジェクトを指定した場合、参照アドレスが同じであれば同じオブジェクトと判断されます。これはオブジェクト同士の比較で a == b が true となる場合、同じキーと認識されることを表します。 今回は、自作のクラスの内容が同じ場合…

WPFで未処理の例外を一括で処理する

WPFで例外が処理されずに最上位のベントハンドラから例外がthrowされた場合、アプリがクラッシュします。 アプリがクラッシュすると、以下のような、OSのアプリのクラッシュレポートダイアログが表示され、以上が発生したことがユーザーに通知されます。 こ…

C#で構造体のunion(共用体)を扱う

C/C++にあるunionをC#で使用する方法は、ネットにいくつか解説しているサイトがあります。しかし、構造体がunionになったものは例があまりないため紹介したいと思います。 基本的に、StructLayout = "LayoutKind.Explicit"(明示的にレイアウトを指定する)…

C#でリトルエンディアンをビッグエンディアンに変換する

タイトルの通り変換をするための操作の紹介をしたいと思います。 まず、誤解を恐れずに言うと、ネットワークにデータを流すときは「ビッグエンディアン」形式、いつも使ってるPCは「リトルエンディアン」形式が使われています。 更に、ネットワーク上にデー…

WPFでボタンにホバーエフェクトをかける

WFPのボタンコントロールにホバーエフェクトをかけたいと思います。 マウスオーバーするとボタンの色が変わります。完成すると以下のようなイメージになります。GIFにすると画質悪い… XAML メイン画面のXAMLは以下の通りです。

VisualStudio 2017で.NET Framework4.7.1を利用可能にする

Visual Studio 2017に.NET4.7.1を追加する方法です。いつも、MSのWebサイトへ飛んで開発者キットをダウンロード → インストーラを起動し導入していましたが、今回は2017から新しく追加されているVS用のインストーラを使って追加する方法で導入したいと思いま…

WFPのListBoxでカードUIを作成する

WPFでListBoxを使ってカードUIを作成する方法です。 作成したものは以下のような外観になります。 リサイズすると横幅に合わせて列数が変わります。 よこに広げると以下のように並び変えられます。 カードの構造 XAMLを貼る前に構造はこんな感じになっていま…

Visual Studio 2017で単体テストもしくはTDDする

Visual Studio 2017でC#で開発してる開発者で、開発時にMSTestを使って単体テストを作成したり、コードを書くときにTDDしたりは、すっかり開発風景に定着していると思います。ただ、たまに作成方法を忘れるので、確認を兼ねてVisua Studio 2017 Community版…

C#とWPFで自力でチャート(グラフ)を描画する

WPFで数万点のデータを高速にグラフに表示しようとすると、たいていのチャートライブラリで何十秒も描画に時間がかかって使い物にならないことが多いので、簡単にデータを見たいときに使用する簡易チャートライブライを作成してみました。 線グラフっぽいも…

.NET と.NET Coreで定義ファイルを読む

.NETのアプリケーションにはアプリケーション設定ファイルから定義を読み取る機能が付いています。自作の定義フォーマットを作成せずとも定義が読み込めたりします。 そこで、.NET Framework と.NET Coreの両方から読み取ってみようと思います。 .NET Framew…