VB.NET
F# コンパイラのソースを読んで はぇ〜さん(@haxe) とtwitterにて、以下のようなやり取りがありました。 ところで #fsharp の for m in Regex.Matches(input, pattern) do () はGetEnumerator()をしてくるわりに、m : Match に解決してくれるのはなんでだろ…
3月26日に参加した第56回CLR/H勉強会にて、WINGSプロジェクトさんより「独習ASP.NET第3版(翔泳社)」を頂きました。 WINGSプロジェクトさん、翔泳社さん、id:naoki0311さん*1、CLR/Hスタッフの皆さん、どうもありがとうございます。 独習ASP.NET 第3版作者: …
オブジェクト指向プログラミングが好きだ。関数型プログラミングが好きだ。 オブジェクト指向プログラミングオブジェクト指向プログラミングは、コンテナの一般性を確保している点で優れている。 データと振る舞いをコンテナとしてまとめることで、プログラ…
実践 F# 関数型プログラミング入門作者: 荒井省三:いげ太出版社/メーカー: 技術評論社発売日: 2011/01/07メディア: 大型本購入: 6人 クリック: 264回この商品を含むブログ (26件) を見る まず、書籍のご紹介をさせていただきます。 荒井さん、いげ太さん共著…
以前、FlagsAttributeとビット演算のちょっとしたレシピという記事を書きました。 ご覧頂くとわかるように、とてもダサい実装になっています。記事を掲載してすぐに知人からツッコミがありました。 ツッコミがあったときにすぐに続編記事を書いて訂正しよう…
「より堅牢で正確性の高いソフトウェアを作りたいぜ!」と願う.NETデベロッパーお待ちかねの、 契約による設計(DbC)をサポートするCode Contractsが.NET Framework4より利用できるようになります。 C#をベースとして契約による設計をサポートする「Spec#」を…
ハイクの方で書いたネタですが、結構おもしろいネタだったので、 加筆修正などしてこちらにも投下しておきます。 なんぞこの記法。VBがマゾ言語と言われる由縁のひとつがこれだ。VBおよびVB.NETでは下記のような感じで関数を記述することができる。 (VB.NET…
id:atsukanrockさん、トラックバックありがとうございます。 「 熱燗ロックのブログ - .NET Frameworkで、シリアル化可能なタイプセーフenumを実装する - その2」を受けまして、 さっそく、まねまねさせて頂まして、再びTypeSafeEnumを書き直しました。 そう…
Visual Studio2005以降では、Eclipseなんかに比べるとまだまだ貧弱とはいえ、 便利なリファクタリング機能がいくつかある。たとえば、フィールドやメソッド名を変更するとき、 スマートタグを表示することで、参照されているものすべての名称を一括して変更…
CodeZineにて .NET Frameworkの代表的なコレクションと使い方 http://codezine.jp/article/detail/3640 という記事がありまして、結構な数のはてブをゲットしている人気記事のようでした。 でもなんで?というのが正直な感想です。「なんで?」の意味すると…
VB.NETでもC#でもいいんだけど、.NET Framework2.0以降でWindows.Formsなアプリを作る場合、 入力検証を行うようなときは、ErrorProviderを使いたいよね!*1というお話は、 .NETで飯を食っている人にとっては割と常識ではないかと思っていたのだが、実際のと…
ニコニコ動画などから得られるFLVファイルですが、 C#でお手軽に再生するには、ActiveX Control(AxShockwaveFlash)に頼るといいっぽい。 アスペクト比が指定できなかったり、再生できないFLVも結構あるようですが、まぁお手軽ということで。 ※FLVファイルを…
以下のような感じで、特定のインターフェイスを持つプラグインを取得するメソッドを作ってみた。 複数の種類のプラグインを利用するアプリなんてそうそうない気がしないでもないが、 こんな感じでひとつ作っておくと便利。やっぱLINQとyield使うと、かなりす…
マイクロソフトから提供されてるEntLib*1に含まれている DIコンテナを弄ってみた。 思っていたよりもいい感じにDIできますね。うんこれは便利。 Microsoft Enterprise Library 4.1 – October 2008 構成ファイル(*.config)から手軽に依存性の注入をしようDIコ…
例えば、 hoge1.Value = pugera1.Value; // ほげぷげら1 hoge2.Value = pugera2.Value; // ほげぷげら2 hoge3.Value = pugera3.Value; // ほげぷげら3 hoge4.Value = pugera4.Value; // ほげぷげら4 hoge5.Value = pugera5.Value; // ほげぷげら5 (以下省略)…
というわけで、前回のC#3.0で書いたラムダとY Combinatorと私。Y Combinatorは恐ろしい子。について、 VB2008のラムダ式でも書いてみました。VBだってやれば出来る子なんです(´・ω・`) Imports System Imports System.Linq Imports System.Collections.Gene…
以前書いた、デザインパターン第10回「Iteratorパターン」その1はこちらです。 以前書いたときは、ただ単にIEnumerableインターフェイスおよび、IEnumeratorインターフェイスを そのまま利用しただけの例について、イテレータパターンを学習しました。 今…
enumのフィールドに対応する日本語リテラルを付加するためのカスタム属性を書く /// <summary> /// 元号 /// </summary> private enum Gengo { 明治, 大正, 昭和, 平成 } enumのフィールドは、上記のように日本語で指定することも、もちろん可能なんだけど、 コードの中に日本語…
C#やVB.NETではオブジェクトのCloneを行うと参照のみがコピー(シャローコピー)される。 シャローコピーは、値を変更するとコピー元のデータも変更されてしまうので、なにかと都合がよくないことが多い。 オブジェクトのバックアップを取りたいような場合は…
以前書いた、デザインパターン第7回「Singletonパターン」その1はこちらです。 結城先生のホームページに、Singletonのサブクラス化という記事がある。 Singletonの考え方にもいろいろあるけれど、その中の考え方のひとつ、 「(2) クラスごとに管理 ―― ク…
マネジーリソースとアンマネージリソース.NET Frameworkで扱うリソースの種類は、大きく2つに分けることができる。 CLRが管理するマネージリソース(GCヒープ)と、CLRが管理しないアンマネージリソース。 ガベコレによってオートマチックに解放されるのが…
PDA側でActiveSyncの同期接続状態を検知するには、Microsoft.WindowsMobile以下の名前空間のクラス群を利用する。 SystemStateクラスを用い、クレードルのステータスの変更イベントを検知するようにする。 そのイベントが発生したら、そのタイミングでActive…
実行中のアプリケーションが何かしらのタイミングで非アクティブとなり、 別のプロセスウィンドウの裏へ隠れてしまうようなことがある。 対応方法としては、単にFormをアクティブにすればよいのだが、 this.Activate() だけでは、うまく Form が前面に移動し…
独自クラスについてソートをしたいような場合、対象クラスにIComparableインターフェイスを実装し、 それをCollectionにぶち込んでSort()メソッドを呼び出すことで、簡単にソートすることができる。 たぶん、staticなジェネリックメソッドを作成してICompara…
.NET Framework2.0 で新しく追加された、 System.Data.SqlClient.SqlBulkCopyクラス*1もサポートされていないわけだが・・・。 これって、.NET Compact Frameworkだからこそ必要なクラスだと思うのだが。 (;゚Д゚)ポカーン そもそもSQL Server 2005 Compact Editi…
なにかしらの負荷によって時間がかかっている処理があって、 その中でも最も負荷がかかっている箇所がどこなのかを特定するために、 各処理フェーズごとに時間を計測してログに吐き出すことにした。 おもむろに.NET Framework2.0から追加されたSystem.Diagno…
諸事情により、.NET Compact Frameworkを使うことになったので、 ちょっと適当にまとめてみる。 .NET Compact Frameworkとは.NET Compact Frameworkとは、Microsoftから提供されている 携帯電話やPDAなどの携帯情報端末向けのクラスライブラリで、 Windows向…
例外の検出.NET Framework では、他の一般的な水準のオブジェクト指向プログラミング言語と同じように、 構造化例外処理を利用して例外を適切に処理することができる。 構造化例外処理とは、例外と保護されたコードブロック、およびフィルタを含む制御構造に…
例外管理ポリシーアプリケーションの内部で発生した例外を管理する際には、いくつか考慮すべきことがある。 まず、「発生した例外をどのタイミングで捕捉するのか」、「捕捉した例外をどのように処理するのか」、 そして、「捕捉した例外をどのように伝播さ…
公私共にモチベーション低いですが、久しぶりに独りよがりなデザパタ講座です。 今回はGoFデザインパターンより、「Proxyパターン」をぬるーく解説します。 ■Proxyパターンの概要■ Proxyとは「代理人」という意味です。 現実の世界での「代理人」のイメージ…