C# の event と delegate の違い

C#

マウスをクリックした場合などに発生する"イベント"の話ではなく、c#の予約語の"event構文"の話です。本当にざっくりとした先に結論を書くと、"event構文"は"delegate専用のプロパティ"の一種です。delegate型をクラス外に公開する場合だけ特別に、"プロパテ…

ObservableCollectionにAddRangeを追加する

C#

タイトルの通りで、ObservableCollectionやIListにはAddRangeを追加したいと思います。ObservableCollectionにはAddRangeが存在しないため、リストで受け取ったデータはforeachで一つひとつ追加することになり多少面倒なので「拡張メソッド」という機能を使…

C#のイベントのnullチェックがめんどくさい

C#

イベントってWPFだとプロパティ変更を画面(View)に通知するために複数実装することがあります。ただ、その時いちいちイベントにインスタンスが入っているかどうかを確認するとコードがnullチェックだらけになってしまいます。 デリゲート呼び出し時のnull…

クラリネットの運指表

クランポンの楽器を買ったときについていたクラリネットの運指表が横に長すぎて取り回しが悪かったのでA4サイズに加工してみました。最低音~最高音まで網羅していて、それぞれの変え指も豊富なので、現時点で多分どのサイトに掲載されているのよりも詳しい…

cocos2d-xのUSING_NS_CCについて

cocos2d-xのUSING_NS_CCはCCPlatformMacros.hに以下のように定義されています。 #ifdef __cplusplus #define NS_CC_BEGIN namespace cocos2d { #define NS_CC_END } #define USING_NS_CC using namespace cocos2d #define NS_CC ::cocos2d #else #define NS_…

【C#】constとstatic readonlyの違いと使い分け

C#

C#でプログラム書いてるとコードを書いているときは、constとreadonlyの区別ってあんまりありませんよね。ついつい定数は、constと書いてしまいます。 public static class HogeDefine { public const uint MaxLength = 10; public static readonly uint Dat…

現在のコードページで表示できない文字を含んでいます。

VisualStudio2013以降で以下警告メッセージが出た時の対処法です。 コードページの警告 hogehoge.cpp : warning C4819: ファイルは、現在のコード ページ (xxx) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存…

Windows10のフォントが汚すぎる...

これは、、、、汚すぎない?フォントが。強制的にWin10へ移行させて移行した先が地獄とかWinのユーザー調教厳しすぎます。何YuGothicって。。。 細すぎてかすれてるしぼやけてんじゃん。ちゃんと描画できないのに何で採用した? 目が悪くなったのかと思って…

VS2015 Communityのダウンロード超遅い

VisualStudio2015 Communityのダウンロードは時間にもよると思いますが死ぬほど遅いです。速度が100~200Kbyte/sec程度しか出ない感じです(現在進行形)全体で10G以上あるみたいなので始めるときは覚悟したほうがよさそうですね・・・ トホホ・・・どうやら…

Windows10のアクティブウインドウに色をつける

マイクロソフトのごり押しに負けてWindows10にしたものの、今までのOS使用歴がVista → 7 → 8 → 8.1 → 10 で強制的にOSを変更させられて地雷ばっかり踏まされてばっかりなので少々辟易しています。自宅のPCが不可抗力でWindows10に強制変更させられたのですが…

VisualStudioのスペースとタブの表示・非表示

たまにスペースの表示がドットに代わるときの設定方法です。VisualStudio を操作中に何かのキーを押してしまったらしくスペースが「.」(ドット)でタブが「→」矢印で表示されるようになってしまいました。元に戻し方がわからない、、、、 と思い、メニューを…

VisualStudio 2013で.NET Framework 4.6.1を利用可能にする

ちょっと前に、VisualStudio2013へ.NET4.6の導入の仕方を書いたけど.NET4.6.1も同じような手順で導入できます。 背景的なもの 4.6の登場が2015年7月で4.6.1の登場が2015年12月となっています。ものすごい早いペースで更新されているのですが開発中にこういう…