2006-11-01から1ヶ月間の記事一覧

遅延評価:解説編

C#

間違ったC#の使い方を追求してる気がするけど、IEnumerableとyieldを使うとなぜかあっさりと関数型言語風に使えてしまうことがおもしろいのでまだ突き進みます(^^; きっとこれは偶然じゃなくてLINQの基礎なのかも?と思ったり(調べてないけど)。たらいまわし…

C#でたらいまわし

C#

yieldで遅延評価めいたことができたので、こうなってくるとたらいまわしたいよね?と思って考えてました。 悩みに悩んだ挙句、ついにできた! //#define COUNTusing System; using System.Collections.Generic; using System.Diagnostics;namespace Taraimaw…

Take

C#

いやいや、やっぱり Map はいるよね、ちゃんと遅延評価しているし、と思って遅延評価を見るために Take を書いてみた。 static IEnumerable<T> Take<T>( int n, IEnumerator<T> it ) { for ( int i = 0; i < n; i++ ) { if ( it.MoveNext() ) yield return it.Current</t></t></t>…

Accumulate と Map を使って SumOfSquares

C#

static int SumOfSquares( IEnumerable<int> list ) { return Accumulate( delegate( int x, int y ) { return x + y; }, 0, Map<int, int>( delegate( int n ) { return n * n; }, list.GetEnumerator() ).GetEnumerator() ); }書いてみたかった。今は反省している。</int,></int>

Map

C#

Accumulateがこれでいいんだったら、Mapも書けるんじゃね?と思って書いてみた。 class Program { static void Main( string[] args ) { List<int> list = new List<int>( new int[] { 1, 2, 3, 4, 5 } ); Converter<int, int> converter = delegate( int n ) { return n * n; };</int,></int></int>…

Accumulate

C#

前の記事の「delegate T AccumulateAction( Combiner combiner, T value, IEnumerator it );」が不要なことに今さら気付いた。昨日の問題は引っ掛け問題っぽくなってしまってるw 問題のほうは訂正しとこ。 完成版のAccumulateはこちら。 class Program { st…

もっと試してみた

C#

昨日のを入力を破壊しないようにできた。 class Program { static void Main( string[] args ) { int result = SumOfSquares( new int[] { 1, 2, 3, 4, 5 } ); Console.WriteLine( result ); Console.Read(); } []delegate[] T AccumulateAction<T>( Combiner<T> c</t></t>…

試してみよう

C#

Joelの試してみようの1問目のC#版。 1c#.(C#2.0) 次の問題は1bをC#2.0にしたものだ。次のメソッド []delegate[] T Combiner<T>( T x, T y );static T Accumulate<T>( Combiner<T> combiner, T nullValue, Queue<T> q ) { if ( q.Count == 0 ) return nullValue; T first</t></t></t></t>…

FlowLayoutPanel での DragDrop サンプルコード

http://siokoshou.googlepages.com/FlowLayoutPanelでのDragDrop、だいぶ前に書いてからまだだらだらやってたんですが、いい加減飽きてきました(^^; 何かの参考になることもあるかもしれないので、コードを公開します。なぜか2000行超えてます。なんでこんな…

Disposableクラスコードスニペット

C#

コード スニペット テクノロジを精査するに出てくる dispclassコードスニペット をMSDNのDispose メソッドの実装に合わせてちょっと直したもの。 ショートカットは「dispclass」。以下の部分を「dispclass.snippet」の名前で My Documents 下の「Visual Stud…

MSDN2検索OpenSearchファイル

インスパイヤされてMSDN2の日本語のとこを検索するOpenSearchファイルを作ってみた。 http://d.hatena.ne.jp/siokoshou/20060317#p2 の FirefoxのMSDN2検索プラグインのOpenSearch版。http://siokoshou.googlepages.com/msdn2jsearch.htmlIE7とFirefoxで確認…

Google Code SearchのOpenSearchファイル

最速インターフェース研究会さんとこに「Google Code SearchのOpenSearchファイル」が。超便利。http://la.ma.la/blog/diary_200611171328.htmFirefoxとIE7に学習させた。これで「dispose lang:c#」みたいに検索できる。あ〜極楽。

プログラミングMicrosoft.NET Framework 第2版

むむむ、Richter本の第二版が出るのね。12/11発売(12/8??)。ISBN:4891005238 http://www.microsoft.com/japan/learning/books/default.mspx http://7andy.yahoo.co.jp/books/detail?accd=R0223813(追記)1/31まで10%offで買えるキャンペーンもやっていた。 ht…

surround-with コードスニペット

VisualStudioの機能はどこまでもどこまでも豊富なんですが、今日はじめて「surround-withコードスニペット」に気付いた! こういう機能って知ってる人は当然と思っているから話題にならないけど、人の作業を見てて「あれ?今何やったの?」ってきっかけで知…

古本

「C#によるプログラミングWindows(上)」の古本がアマゾンで高騰している。定価5,500円が14,000円! この本にはいまだにときどきお世話になっています。.NET1時代の本だけど、Drag&Dropも触れているし。お世話になっておきながら、ちょっといろいろと…

カーソル

http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.cursor(VS.80).aspx によると「カラーのカーソルはサポートされていません。」ってあるけど、カラーで出たんだけど…。ん〜。

PowerShell でラインカウント

昨日よりだいぶましになった。 > $wc = New-Object System.Collections.HashTable > ls -name -Recurse -filter *.cs | foreach { $wc[ $_ ] = ( cat $_ | wc -l ).lines } > $wc 結果はこう。 Name Value ---- ----- ApplicationControl.cs 323 HtmlDocumen…

PowerShell遊び

C#ファイルのライン数カウント。 cat (ls -recurse -name -Include *.cs)| Measure-Object -line あるいは、「Set-Alias wc Measure-Object」して cat (ls -recurse -name -Include *.cs)| wc -l で。「wc -l `find . -name '*.cs'`」相当。ただ、空白行が無…

Windows PowerShell正式版

が出た!正式版は遠い未来に延期されたと思っていたのでびっくり。遊んでみたい!!http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx http://journal.mycom.co.jp/news/2006/11/15/364.htmlプロンプトを見ると ls…

Conditional属性

部屋を整理してたら、昔勉強したC#の本が出てきて、こんなのあったなぁと思い出したので遊んでみた。 #ifdef HOGE 〜 #endif みたいなのをまたちょっと違う方法で実現できる属性。条件付きメソッド。TraceやDebugあたりの仕組みを実現するために作ったんだろ…

FlowLayoutPanelのリオーダー

動作を調べて、絵を描いてこうやればできるねってとこまではすんなり進んだけど、実装しようとするとなかなか大変ですね! Controlって難しい。ドキュメントも説明する気がないでしょっwてものが結構あるし。 いろんな部分のSizeやPointが入り乱れてて、Pad…

Vista と .NET と VisualStudio と

Vista で .NET1.0 は動かない。1.1 と 2.0 は動く。 Vista で Visual Studio.NET 2002 と 2003 は動かない。2005 (SP1 と Vista Support Update を適用したもののみ) と VB6 は動く。Vista で .NET1.1 で問題起きたら泣きますね…(T-T)http://www.microsoft.c…

帰ってきた XML Notepad

Drag and Drop の参考資料を探してたら、XML Notepad 2006 なんてのを見つけた。懐かしい名前だ…。 .NET2 WinForm で作られてて、ソースつき。 このコード、なかなか凝ってる。アクセスビリティにまじめに対応してるコードなんてハジメテミタ。2Paneで同時ス…

ハンガリアン記法

ハンガリアン記法ってコードを醜くするだけでたいして意味がないから嫌いだったんですが、Joel の「間違ったコードは間違って見えるようにする」を読んでころっと考えが変わってしまいました。 実は世に広まってしまった Windows のハンガリアン記法は勘違い…

Box化確認ツール

.NET3.0 が出た記念ってわけでもないけど、Box 化確認ツールを作ってみました。しょぼいツールなのに驚きの効果が…w きっかけは、自作の WinForm アプリがもっっっさりと遅くて、「WinForm、おせ〜」とか言いながら調べてみたら、実は原因は意図していない …

Visual Studio 2005に穴が見つかった。Visual Studio 2005 の脆弱性により、リモートでコードが実行される http://www.microsoft.com/japan/technet/security/advisory/927709.mspx既に検証コードがあるそうなので、早急に対処を。対処方法も書いてある。

.NET Remoting メモ

WCF目前なのにRemotingをちょっと使ったので調べたことなんかをメモしておきます。あまり詳しくないので、疑って読んでください(-_-;Remotingは通信手段ではあるけれど、主題は、オブジェクトをサーバとクライアントでやり取りするってとこが要点って感じ。…