コーディングガイドライン for C# 3.0, 4.0, 5.0

日本語でC#のコーディングガイドラインがあまり充実していないということで、なにか欲しいねと言う話をしてたんですが、
英語ですばらしいものがあったので、公開しているDennisさんに連絡を取って翻訳させていただきました。

コーディングガイドライン for CSharp 3.0, 4.0 and 5.0
下の方にJapanese版のリンクがあります。

命名規約などにとどまらないすばらしい内容なので、ぜひ参考にしてください。

日本語翻訳のレビューには、以下の方々からフィードバックいただきました。(返信をもらった順)

小島 富治雄さん
原 敬一さん
かるあくんさん
岩永 伸之さん
青木 淳夫さん
赤澤 光世さん
長沢 隆さん
小山 康晴さん

ご協力ありがとうございました!

VBで型を省略したときの振る舞い

Visual Basic Advent Calendar 2011 : ATND
.NET Framework 3.5から暗黙の型定義ができるようになりました。
って、VBは昔から出来ていたんですけどね。
そこで、C#にあわせて仕様が変更になりました。
以下のコードをご覧下さい。

module a
public sub main
dim a = 10
dim b
b = 10
b = "abc"
console.writeline(b)
a="abc"
console.writeline(a) ' ハンドルされていない例外: System.InvalidCastException: String "abc" から型 'Integer' への変換は無効です。
end sub
end module

aは変数宣言時に初期化しているため、暗黙的にInteger型で定義されます。
一方bは、初期化していないため、Object型として定義されます。
そのため、文字列"abc"を代入しようとすると、bのほうはすんなり入りますが、aの方はExceptionが発生してしまいます。

これまで、暗黙の型変換に頼ってルーズな書き方をしていた場合には、注意が必要になります。

Kinect: ディズニーランド・アドベンチャーズ

http://marketplace.xbox.com/ja-JP/Product/Disneyland-Adventures/66acd000-77fe-1000-9115-d8024d5309c1
事前に知っていた情報は、Kinectでディズニーランドが体験できるらしいということだけ。実際にどんなゲームかは全然知りませんでした。ディズニーランドのアトラクションに乗れるの?それっておもしろいの?子供向けじゃないの?といろんな疑問を抱きながらプレイを始めました。

結論としては、大人も楽しめる、子供向けゲームという感じでした。

まず、ディズニーランドの入り口から始まります。男の子か女の子か、顔や服などを選んでディズニーランドの中に。中には、ディズニーキャラクターが待っていて、タスクと言われる簡単な課題をこなすことから始まります。タスクに従ってディズニーランドの中を歩き回ることもできますし、アトラクションに乗ることもできます。なんと待ち時間がほぼなし!!

アトラクションは、ランドのものを再現したというよりも、原作にアトラクションの要素を加えたという感じ。プーさんと一緒に風船で飛びながらハチミツを集めたり、スプラッシュマウンテンでウサギと一緒に逃げたりと、原作の世界に入り込んだ感じです。ゲームは子供向けではなく、意外と難しいのですが、何回ぶつかっちゃダメとか、何秒以内にクリアしないといけないとか、そんな難しい条件はなく、時間をかければクリアできるものが多いです。ゲームが得意な人は、どんどんクリアしていけばいいし、小さい子供やゲームが苦手な人は、時間をかけてクリアすればいいという感じで、非常にいいバランスでできています。

プレイした結果ですが、子供っぽすぎることはなく、大人でもディズニーの世界に入り込めます。ゲームも多彩で飽きさせることなく、長時間プレイできます。
お子様がいる家庭、ディズニーファンの方に強くお薦めできる作品でした。

Kinect:ディズニーランド・アドベンチャーズ - Xbox360

Kinect:ディズニーランド・アドベンチャーズ - Xbox360

Microsoft MVP 向け “ディズニーランド・アドベンチャーズ” レビュー キャンペーンに参加し、本ソフトのレビューを行っています

簡単にVBコードを確認するには

Visual Basic Advent Calendar 2011 : ATNDに参加します。

VBで開発しているとき、フォーマットの確認など、ちょっとした動作を確認したいのに、わざわざVisual Studioを起動して確認するのは面倒ですよね。
そんなときには、コマンドラインで簡単にコンパイル&実行してみませんか?

コンソールアプリのコンパイルはこんな感じでできます。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc a.vb

.NET Frameworkディレクトリにパスさえとうしちゃえば、こんなに簡単に書くことができます。

vbc a.vb

さて、肝心のVBのコードですが、最低限必要なのはこのぐらいです。

Module a
Sub Main()
Console.WriteLine("Hello")
End Sub
End Module

慣れるとなにもなしでも書けるんですが、面倒なので、僕は秀丸マクロを使ってます。

insert "Module a\n\n";
insert " Sub Main\n";
insert " Console.WriteLine(\"Hello\")\n";
insert " End Sub\n";
insert "End Module";

秀丸マクロは登録すると、ショートカットキーを割り当てられるので、「Ctrl] + [I]を割り当てて、すぐにコードが出せるようにしています。

ところで、コンパイルに必要なライブラリですが、以下のファイルにデフォルトで参照するライブラリが書かれています。
C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.rsp
よく使うライブラリが書かれていない場合は、ここに追加しちゃえば楽です。

社内フレームワーク単体テストや、動作検証にも便利だと思います。

Dance Central 2

寒くなってきましたね。
今朝も寒くて、ふとんをかぶってリビングのパソコンをいじっていましたが、そんなときにはDance Central™ 2がいいかもしれません。

Dance Central 2(ダンスセントラル2) - Xbox360

Dance Central 2(ダンスセントラル2) - Xbox360

実は、1(Dance Central)が出た時から興味があったんですが、Kinectを買うまでの決心ができずにあきらめていました。でも、2が出て、ガガさんことLady Gagaの曲が入っているということで、購入を決断しました。

曲は、ガガさんだけじゃなくものすごくいっぱい入っています。
日本人アーティストは、残念ながらEXILEだけですが、洋楽でも聞き覚えのある楽曲が多いので、結構楽しめます。(マイアヒ〜とか)

さっそく、やってみたかったガガさんのBad Romanceを踊ってみました。これが思っていたよりも大変。ほんとにこんな激しいダンスをしながら踊ってたの?とYouTubeを見てみると、本物はもっとハードなダンスを踊ってました・・・(ちなみにBorn this wayの方はもうちょっと楽でした。)

そんな感じで、1曲踊り終わる頃には半袖Tシャツでも汗をかくほど温まりました。消費電力の大きいXBOXなので、エコにはならないかもしれませんが、運動としては、かなり有益だと思います。お薦め!

Kinectスポーツ:シーズン2

Kinectスポーツ:シーズン2をやってみました。

そもそも、Kinectの設置からはじめてだったんですが、うちのリビングだと幅がギリギリでした。テーブルをどかして、テレビを後ろに下げて、どうにか頭からスネぐらいまではいる感じでした。日本の住宅ではちょっと厳しいですね。家具の配置権限が僕にあれば、リビングを縦に使うんですが・・・

ゲームは、アメフト、野球、テニス、ゴルフ、スキー、ダーツの6種類。
とりあえずひととおり遊んでみました。

全部に共通して言えるのは、プレイ方法がわからないくても、迷いそうなところでチュートリアルが出てくるので問題ありません。
ルールが分からなくても大丈夫。

Wiiでも同じようなゲームがありますが、コントローラなしでできるのはやっぱりいいです。
プログラムをやっている人間のクセで、コントローラをどう操作すればどう動くのかを考えてしまうんですが、Kinectの場合は、人間の体を検知していることがわかるので、きちんと動かないとダメだと分かっているので、きちんと楽しめます。

また、プレイ後に消費カロリーがでるので、運動してる感があっていいです。
一番運動になるのは、野球で、きわどいときには一塁までのダッシュが求められます。頑張って走りすぎると、前に出すぎですと怒られます。(うちのリビングの問題ですが)
スキーは、旗の間をくぐっていくというもので、前にWii Fitでやったものと同じようなものですが、あっちよりも反応がよくていいです。

ダーツは、テレビ画面に向かって縦の動きというスキャンが難しそうな動きなのに、きちんと反応していました。でも、実際のダーツよりも操作が難しい感じがしました。

ゲームの最後にプレイの様子がビデオで流れるんですが、これがものすごく恥ずかしい。
アメリカ人はみんなで喜んでみている様子が想像に難しくないのですが、日本人には恥ずかしいかも。
でも、パーティーでは盛り上がるかもしれません。うちのリビングでは、パーティーKinectの両立は無理ですが・・・

Kinect スポーツ シーズン 2 - Xbox360

Kinect スポーツ シーズン 2 - Xbox360

Visual Basic 2010の新機能

もう、公開されたのが一昨日になってしまいましたが、Visual Basic 2010の新機能(1/4) - @ITを書きました。

VS2010(VB2010)がリリースされてから1年になりますが、まだまとめたドキュメントがなかったんですね。
アンケートを採るとVBの方が多いらしいんですが、ブログを書く人や記事を書く開発者の興味がVBからC#に向いてしまってたんですね。
理由は、機能実装の遅れがあると思います。C#ではいろいろな機能がどんどん追加されますが、VBは後を追う形になっていたと思います。
VB2010では、C#と肩を並べる存在になったので、そこを協調しておきたいと思います。