“Professional”相当の無償版「Visual Studio Community 2013」をインストールして日本語化した

Microsoftが12日に発表した「Visual Studio Community 2013」は衝撃だった。

これまで Visual Studio Professional は約6万円だったのだが、
それに相当する機能を持った「Visual Studio Community 2013」を
無償で提供するという。

Microsoft、“Professional”相当の無償版「Visual Studio Community 2013」を公開 - 窓の杜

さっそくインストールしてみた。

ちなみに Visual Studio 2013 Express との共存も可能。

続きを読む

FreeNAS 構築メモ ハードウェア編

FreeNASサーバーを構築したのでメモ。

FreeNAS(フリーナズ または フリーナス)は、PCでNAS(ネットワークアタッチトストレージ)を構築することに特化したUNIXシステム(FreeBSDディストリビューション)である。via: FreeNAS - Wikipedia

長くなるので分けて書く。

ちなみに今回が4台目の自作PCだが、今までで一番トラブルが多かった。
トラブルについても個別に記事を書く。

今回はハードウェア構成と選定理由。

続きを読む

ILSpy で C# コンパイラがどのようにコードを解釈したかを知る

C# はいろいろ省略してもいい感じに解釈されて動くので、
どのように解釈されているか知りたくなったのでメモ。

続きを読む

ListBoxで内部の値とは別に表示する値を自由自在に変更する

2015/04/14
別の方法を見つけたのでエントリを書いた
ListBox(ComboBox)で内部の値とは別に表示する値を自由自在に変更する Part2 - posnum’s blog

最も単純な方法としては、 ListBox に DataSource を設定し、DisplayMember プロパティに表示したいメンバを設定する。

続きを読む

C# で押さえておいたほうが良い定義済みデリゲート

C# のコードを見ていると、よく定義済みデリゲートが出てくる。 最初見たときは???となったので、覚えておいたほうが良い。

以下のサイトが参考になった。

やさしいC# 3.0まとめblog: 【ラムダ式】 定義済みデリゲート一覧

定義済みデリゲートとは、クラスライブラリで定義されているラムダ式を格納出来る型のことです。

個人的によく見かけるのは Action と Func 。 それぞれ複数のパターンがあるが、基本的な意味は、 Action が戻り値 void で、 Func が戻り値ひとつ。

C# で LINQ

C# の最大の特徴である LINQ 。 やはり LINQ を使いこなさないと C# を使えるとは言えないのではないか。 ということで本格的に LINQ を学ぶことにした。

以下のサイトが非常に参考になった。

C# やるなら LINQ を使おう | プログラマーズ雑記帳

続きを読む

C# でフリーズさせずにスリープする最も簡単な方法は Task.Delay()

Visual Studio 2013 を使用。

C# sleep」などで検索すると、 System.Threading.Thread.Sleep()が出てくる。

そして、System.Threading.Thread.Sleep() を Windowsフォームアプリケーションで普通に書くと、 スリープの間、フリーズしてしまう。

これはGUIスレッドでスリープさせているため、 ユーザの操作を受け付けられないからである。

回避するためには別スレッドで非同期にスリープさせれば良いのだが、 スリープ後にGUIスレッド上のコントロールを操作する必要がある場合は 非常にややこしくなる。

しかし、Visual Studio 2012 以降は Taskやasync/awaitが導入され、非同期処理が非常に簡単に書けるようになった。

Task.Delay() を使うことで、 以下のように簡単にGUIスレッドをフリーズさせないスリープができる。

private async void sleepAsync()
{
    await Task.Delay(5 * 1000);
}

ミリ秒でスリープ時間を指定する。

await で待つ必要があるので、Task.Delay() を使う関数は async を付けておく。