2009年12月28日

自然数 142857

   このエントリーをはてなブックマークに追加 Clip to Evernote
142857という数字を見て、「あれね」とピンとくる人は、かなり数字好きの人ですね。
142857にはとても面白い性質があります。
そのひとつが、巡回数です。ダイアル数、循環数といも言うらしいです。

ということで、巡回数を求めるプログラムを書いてみました。
こちらに書いたものを一部変更し、Silverlightアプリとして書き直したものです。



ソースコードはこちら の「巡回数」の ページに載せています。

142857をWebで検索してみると、そのほかの面白い性質があることが分かります。

  

Posted by gushwell at 23:20Comments(0)TrackBack(0)

2009年12月23日

「C#プログラミングレッスン」FxCopに学ぶ編

   このエントリーをはてなブックマークに追加 Clip to Evernote

Gushwell's C# Programing Pageで、メールマガジン『C#プログラミングレッスン』のバックナンバー「FxCopに学ぶ編」をダウンロードできるようにしました。

  
Posted by gushwell at 11:42Comments(0)TrackBack(0)

2009年12月19日

SilverlightのWriteableBitmap クラス

   このエントリーをはてなブックマークに追加 Clip to Evernote
例えば、Silverlightで、点を描画したい場合、どうやってやるのだろうか?
まさかRectangleを使うということは無いよな。
ということで調べたら、WriteableBitmap クラスというものがあった。
でも、このクラスには、GetPixel とか SetPixel とかが無い。
Pixelsプロパティがあるので、これを使うみたいだ。
でも、これって1次元配列だし、int型じゃないですか。
面倒くさいですね。
ということで以下が作成した2次元ランダムウォークのプログラムです。



ソースコードはこちらに掲載しています。  
Posted by gushwell at 23:13Comments(0)TrackBack(0)

2009年12月15日

LINQのToListメソッド

   このエントリーをはてなブックマークに追加 Clip to Evernote
Ito Blogの LINQ における ToList メソッドにコメントできないみたいので、 こちらに書きます。

IEnumerable<T> を返すメソッドなんかを自作して、それをどんどんつなげて行くと最後に複雑なLINQのクエリが実行されて、ものすごく遅くなることがあるんですよね。

なので、意識的に ToList() などを呼んで即時実行させるときがあります。これだけで、速度がグンと速くなる場合があります。

ということで、List<T>にする必要はないけど、ToList()を呼び出すこともあります。
  
Posted by gushwell at 21:31Comments(4)TrackBack(0)

2009年12月10日

HashSetジェネリッククラス

   このエントリーをはてなブックマークに追加 Clip to Evernote
4年以上前に、このブログで、自作のHashSetクラスを公開しましたが、これももう用済みですね。
.NET Framework 3.5からは、System.Collections.Generic名前空間に、そのものずばりの HashSet クラスがありました。

僕は、Union、Except、Intersect というメソッド名にしましたが、 .NET Frameworkでは、UnionWith, ExceptWith, IntersectWith でした。
でも、Xorは無いですね。

  
Posted by gushwell at 23:10Comments(0)TrackBack(0)

2009年12月08日

C#3.0での配列の比較

   このエントリーをはてなブックマークに追加 Clip to Evernote
もう4年以上前ですが、このブログで配列の比較をするコードを載せました。
今でも Googleの検索結果から、その記事のページを訪問してくれる人がいるようです。
そこでは、以下のようなコードを載せました。


とか


でも、C#3.0からはこんな必要はないですね。


という配列があった場合、


だけでOKです。自作のメソッドはもう不要です。
  
Posted by gushwell at 23:20Comments(2)TrackBack(0)

2009年12月06日

凸多角形の外周 (Silverlight)

   このエントリーをはてなブックマークに追加 Clip to Evernote
以前、凸多角形の外周で、掲載したプログラムをSilverlightアプリに移植しました。

マウスクリックで点を打って、実行ボタンを押してください。


ソースコードは、こちらに掲載しています。   
Posted by gushwell at 21:46Comments(0)TrackBack(0)

2009年12月03日

FxCopに学ぶ番外編(7) : Dispose メソッドから基本クラスの破棄を呼び出します

   このエントリーをはてなブックマークに追加 Clip to Evernote

メールマガジン「C#プログラミングレッスン」では、今、[FxCopに学ぶ編] を連載中です。
そこで取上げようとしたルールで、下書きまでしたのですが、結局メルマガには書かないことにしたルールがいくつかあります。
そのまま捨ててしまうのはもったいないので、ブログに掲載します。


■IDisposableの実装(3)■

「CA2215:Dispose メソッドから基本クラスの破棄を呼び出します」
というルールがあるのですが、どのようなコードを書いたらこの FxCopの警告が出るのが試したのですが、警告を出すことができません でした。

ということで、いきなりですが、Disposeパターンを実装したクラスを継承する場合の正しいコードを掲載します。
もちろん、DelivedTypeの中で、破棄すべきフィールドを保持していた場合の コードになります。


Disposeパターンを実装したクラスを継承する場合は、 publicな、Disposeメソッドは 継承元で定義済みですので、改めてここで記述する必要はありません。
上記のように、引数ありのDisposeメソッドをoverrideするだけです。
このメソッドの中で継承元の Dispose(disposing) メソッドを忘れずに呼ぶようにします。

■FxCopのルール
CA2215:Dispose メソッドから基本クラスの破棄を呼び出します

  
Posted by gushwell at 23:26Comments(0)TrackBack(0)