PG日誌

受託系 PG が C# の事を書いています

MahAppsでマテリアルデザインっぽいボタンを実装する

WPFのオープンソースのGUIライブラリMahAppsを使ってマテリアルデザイン風のボタンをサクッと実装してみました。 作成環境 Windows10 VisualStudio2017 Update3 (15.3.5) .NET Framework 4.7 MahApps.Metro使用 FLATICONを利用 出来上がったもの 使った小技…

C#で汎用リトライ処理を実装する

c#

C#でリトライの共通処理を書いてみました。 特定の操作を指定した回数分自動でリトライしてくれる仕組みになります。 VisualStudio2017 + .NET4.7 + C#7.0で書いています。(Null条件演算子使ってるので、C#6.0以降なら動くかと) リトライのコード 戻り値なし…

C#でリストの特定の要素の位置を変更する

c#

あるリストに入ってる1つの要素の順序(位置)を変更します。 例えば、5番目の要素を3番目に移動したいなどの状況想定します。Listクラスを使いますがそういったメソッドは存在しないため追加で実装します。 実装例 Listクラスの拡張メソッドとして実装したい…

任意の値型をジェネリック(T)型にキャストする

c#

ジェネリックの型をintやboolにキャストして返却しようと思います。以下の例だと明らかに型が決まってるのですが、コンパイルはできません。 public T Convert<T>(string key) { string value = Config.GetValue(key); Type _t = typeof(T); if(_t == typeof(in</t>…

Pavel Haas - オーボエとピアノのための組曲

はじめに ネットで楽譜と音源の両方が参照できる器楽曲を紹介していきたいと思います。 楽曲情報 作曲者:Pavel Haas - パヴェル・ハース 年代:1899年 ~ 1944年 曲名:Suite for Oboe and Piano Op.17 - オーボエとピアノのための組曲 作品17 作曲時期:19…

System.Threading.Semaphoreの使い方

c#

C#のセマフォの使い方です。 C#のセマフォは主に以下の2つのシーンで利用します。 同時に度に実行できるスレッドの数を制限したい 複数のスレッドの進行を同期したい 同時にXXXする数を制限したいという仕様があったときに効果を発揮します。大抵は、共有資…

C#のusingステートメントの機能

c#

IDisposabeleインターフェースを継承したクラスは、以下のように。usingを使用して以下のように記述すると using(var hoge = new Hoge()) { } 以下のように展開されたのとほぼ同じような形で処理が行われ、リソースが即座に解放されます。 Hoge hoge = null;…

C#の4つのTimerの用途と使い方

c#

C#というか.NETのタイマーの種類について整理と説明をしたいと思います。.NETには自分が知っている限り、現時点で4種類のタイマーがあります。 種類 アセンブリ 用途 System.Timers.Timer System 普通の定周期処理 System.Threading.Timer mscorlib 普通の定…

Cocos2d-xで文字送りを実装する

RPGやノベルで表示されるテキストが1文字ずつ表示されていく、「文字送り」機能を作成したいと思います。 画面の構成は、周りの枠をScale9Spriteで表示して、テキストはラベルで表示します。図にするとこんな感じです。 おおよその仕様ですが以下の通りです…

std::stringの日本語の長さを取得する

C++でstd::stringに日本語が設定されているときに、size(), length()メソッドで文字列長を取得しようとすると日本語の長さが取得できません。中身がマルチバイト可変長 + 特殊ルールという構造になっているようで、1文字が1バイト~6バイトとなっているため…

C#で行番号を取得する

c#

C#で行番号を取得する方法です。2種類あってそれぞれ以下の通りです。 using System; using System.Diagnostics; using System.Runtime.CompilerServices; static void Main(string[] args) { GetLine_1(); GetLine_2(); } // C#4.0(VS2010)までの書き方 pub…

コインエフェクトを作成する

Cocos2d-x 3.14.1でコインエフェクトを作成したいとおもいます。 エフェクトは宝箱を開けたときや、敵を倒したときに「複数枚のコインがジャラジャラと出る」ようなエフェクトにしたいと思います。自分で描いたコインの画像を使います。 で、作成したものが…