<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C#</title><link>http://blogs.wankuma.com/episteme/category/418.aspx</link><description>C#</description><managingEditor>επιστημη</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>επιστημη</dc:creator><title>相互参照(お祝いに代えて)</title><link>http://blogs.wankuma.com/episteme/archive/2008/12/10/163256.aspx</link><pubDate>Wed, 10 Dec 2008 10:58:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/12/10/163256.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/163256.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/12/10/163256.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/163256.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/163256.aspx</trackback:ping><description>&lt;P&gt;ネタ元(?) → &lt;A href="http://blogs.wankuma.com/fu/archive/2008/12/09/163130.aspx"&gt;【その他】無事挙式を行うことができました&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;参照とかポインタとか、一方通行です。&lt;BR&gt;コッチからアッチがみえてもアッチからコッチは見えない。&lt;BR&gt;&lt;BR&gt;こんなの考えてました:&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;namespace Wankuma.Util {&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; public class &lt;FONT color=#ff0000&gt;DualRef&lt;/FONT&gt;&amp;lt;I,U&amp;gt; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private I i_ = default(I); &lt;FONT color=#008000&gt;// 俺自身&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private DualRef&amp;lt;U,I&amp;gt; u_ref = null; &lt;FONT color=#008000&gt;// おまえ参照&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public DualRef(I i) { i_ = i; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public I &lt;FONT color=#0000ff&gt;i&lt;/FONT&gt; { get { return i_; } set { i_ = value; } } &lt;FONT color=#008000&gt;// 俺&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public U &lt;FONT color=#0000ff&gt;you&lt;/FONT&gt; { get { return u_ref.i_; } } &lt;FONT color=#008000&gt;// おまえ&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void &lt;FONT color=#0000ff&gt;Connect&lt;/FONT&gt;(DualRef&amp;lt;U,I&amp;gt; u) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { u_ref = u; u.u_ref = this; }&lt;BR&gt;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&lt;BR&gt;&lt;FONT color=#008000&gt;/* おためし */&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;namespace Trial {&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; class Husband {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void call() &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { System.Console.WriteLine(&lt;FONT color=#ff1493&gt;"なあおまえ"&lt;/FONT&gt;); }&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; class Wife {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void reply() &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { System.Console.WriteLine(&lt;FONT color=#ff1493&gt;"あいよおまいさん"&lt;/FONT&gt;); }&lt;BR&gt;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; class Program {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void Main() {&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var adam = new Wankuma.Util.&lt;FONT color=#ff0000&gt;DualRef&lt;/FONT&gt;&amp;lt;Husband,Wife&amp;gt;(new Husband());&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var eve&amp;nbsp; = new Wankuma.Util.&lt;FONT color=#ff0000&gt;DualRef&lt;/FONT&gt;&amp;lt;Wife,Husband&amp;gt;(new Wife());&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; adam.&lt;FONT color=#0000ff&gt;Connect&lt;/FONT&gt;(eve); &lt;FONT color=#008000&gt;// eveは俺の嫁 / adamはあたしの旦那様&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; adam.&lt;FONT color=#0000ff&gt;i&lt;/FONT&gt;.call();&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;// なあおまえ&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; adam.&lt;FONT color=#0000ff&gt;you&lt;/FONT&gt;.reply(); &lt;FONT color=#008000&gt;// あいよおまいさん&lt;/FONT&gt;　&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;...んー、なんか使いみちがありそうなのよね。&lt;BR&gt;二つのForm間でのインタラクションとか。&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/163256.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>εさんの表</title><link>http://blogs.wankuma.com/episteme/archive/2008/10/14/158789.aspx</link><pubDate>Tue, 14 Oct 2008 15:53:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/10/14/158789.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/158789.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/10/14/158789.aspx#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/158789.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/158789.aspx</trackback:ping><description>&lt;P&gt;ネタ元 → &lt;A id=RecentPosts__ctl2_Hyperlink2 HREF="/rti/archive/2008/10/14/158756.aspx"&gt;Rさんのふるい&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;素数を列挙しろ、と。&lt;BR&gt;Rさんはエラトステネスのふるいを紹介してくれてますんで、&lt;BR&gt;僕は&lt;STRONG&gt;素数表を再帰的に拡大&lt;/STRONG&gt;する方法で。&lt;BR&gt;&lt;BR&gt;n が素数か否かを調べるには√n 以下の素数全てで割ってみればわかります。&lt;BR&gt;なので、n以下の素数表が欲しいときは、√n以下の素数表を用意してそいつ&lt;BR&gt;を使って√nからnまでの素数を追加すればえぇです。&lt;BR&gt;nまでの素数表は √nまでの素数表 を基に作れるわけね。&lt;BR&gt;&lt;BR&gt;これを再帰的に適用すれば、&lt;BR&gt;nまでの素数表は √nまでの素数表 を基に作れます。&lt;BR&gt;√nまでの素数表は √√nまでの素数表 を基に作れます。&lt;BR&gt;√√nまでの素数表は √√√nまでの素数表 を基に作れます。&lt;BR&gt;&amp;#8230;&lt;BR&gt;&lt;BR&gt;やってみよぉやないのん。&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;using System;&lt;BR&gt;using System.Collections.Generic;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;public class Program {&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; &lt;FONT color=#008000&gt;// n以下の素数を列挙する&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp; public static IEnumerable&amp;lt;int&amp;gt; make_primes(int n) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;// n &amp;lt;= 4 なら 素数は 2 と 3&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( n &amp;lt;= 4 ) { yield return 2; yield return 3; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;// √n 以下の素数をprimesに格納&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;int&amp;gt; primes = &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new List&amp;lt;int&amp;gt;(make_primes((int)Math.Sqrt((double)n)));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;// √n 以下の素数を列挙&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach ( int prime in primes ) yield return prime;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;// √n &amp;lt; i &amp;lt; n なる i のうち、素数であるものを列挙する&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for ( int i = primes[primes.Count-1] + 2; i &amp;lt;= n; i += 2 ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;// primes中にiを割り切るものがなかったとき、iは素数である。&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool has_divisor = false;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach ( int prime in primes ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( i % prime == 0 ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; has_divisor = true;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( !has_divisor ) yield return i;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; public static void Main() {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach ( int prime in make_primes(100) ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.Write("{0} ", prime);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/158789.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>タスクシステム試作(2)</title><link>http://blogs.wankuma.com/episteme/archive/2008/09/01/154950.aspx</link><pubDate>Mon, 01 Sep 2008 10:07:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/09/01/154950.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/154950.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/09/01/154950.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/154950.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/154950.aspx</trackback:ping><description>&lt;P&gt;&lt;A id=_e9f6b3a66969c2a5_HomePageDays_DaysList__ctl1_DayItem_DayList__ctl1_TitleUrl href="/episteme/archive/2008/08/30/154702.aspx"&gt;タスクシステム試作&lt;/A&gt;のつづき&lt;BR&gt;&lt;BR&gt;えいやーでごりごり書き殴ったタスクシステム、&lt;BR&gt;&lt;A id=_e9f6b3a66969c2a5_HomePageDays_DaysList__ctl4_DayItem_DayList__ctl0_TitleUrl href="/episteme/archive/2008/08/24/154139.aspx"&gt;&lt;FONT color=#0000ff&gt;それっぽくなったぞ&lt;/FONT&gt;&lt;/A&gt;でこさえた"弾幕もどき"に適用してみた。&lt;BR&gt;# プロジェクト差し替えてあります。&lt;BR&gt;&lt;BR&gt;絵を構成してるパーツってたぁくさんあります。&lt;BR&gt;XNAを素で使うとそれぞれの更新と描画がUpdate/Drawの&lt;BR&gt;中にごしゃっと書かにゃならんのですが、タスクシステム使うと&lt;BR&gt;それぞれ個別に書けてキレがよろしい。&lt;/P&gt;
&lt;P&gt;まだまだ、です。"キレがいい"の裏返しが残っています。&lt;BR&gt;実際のゲームでは自機/敵/弾などなどの相互のインタラクション&lt;BR&gt;が絡んだときに現タスクシステムが正しく/使いやすくできてるか&lt;BR&gt;がわかってません。&lt;/P&gt;
&lt;P&gt;なんちゃてーなタスクシステムですけど、&lt;BR&gt;使ってくれていちゃもんつけてくれるひと求ム。&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/154950.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>タスクシステム試作</title><link>http://blogs.wankuma.com/episteme/archive/2008/08/30/154702.aspx</link><pubDate>Sat, 30 Aug 2008 00:13:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/08/30/154702.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/154702.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/08/30/154702.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/154702.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/154702.aspx</trackback:ping><description>&lt;P&gt;まぢもんのゲームなんて作ったことないεπιが&lt;BR&gt;勘だけを頼りにタスクシステムを考えるココロミ。&lt;/P&gt;
&lt;P&gt;えーと、要はTaskを順に動かせばいいんだな。&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;interface ITask {&lt;BR&gt;&amp;nbsp;&amp;nbsp;void Update(); // 状態を変える&lt;BR&gt;&amp;nbsp;&amp;nbsp;void Draw(); // 描く&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;これを複数個まとめ、一気にUpdate/Drawできればいい。&lt;BR&gt;そんなTask集合もまた、Taskであっていいよな。&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;public interface ICompositeTask&lt;TOWNER&gt; : ITask&lt;TOWNER&gt; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// オーナー&lt;BR&gt;&amp;nbsp;&amp;nbsp;TOwner Owner { get; set; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// 子タスクを追加する&lt;BR&gt;&amp;nbsp;&amp;nbsp;void AddTask(ITask&lt;TOWNER&gt; task, int priority);&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// 子タスクを削除する&lt;BR&gt;&amp;nbsp;&amp;nbsp;bool RemoveTask(ITask&lt;TOWNER&gt; task);&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// Updateの直前に行うこと&lt;BR&gt;&amp;nbsp;&amp;nbsp;void BeginUpdate();&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// Update直後に行うこと&lt;BR&gt;&amp;nbsp;&amp;nbsp;void EndUpdate();&lt;BR&gt;&amp;nbsp; /// Drawの直前に行うこと&lt;BR&gt;&amp;nbsp; void BeginDraw();&lt;BR&gt;&amp;nbsp; /// Drawの直後に行うこと&lt;BR&gt;&amp;nbsp; void EndDraw();&lt;BR&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;なんてこと考えてます。&lt;BR&gt;いつになったら"わんくまシューティング"が動きだすやら。&lt;BR&gt;遊びだから。ゆっくりゆっくり。&lt;/P&gt;
&lt;P&gt;&lt;IFRAME style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginWidth=0 marginHeight=0 src="http://cid-07c558f8e11e708f.skydrive.live.com/embedrowdetail.aspx/Project/TaskSystem.zip" frameBorder=0 scrolling=no&gt;&lt;/IFRAME&gt;&lt;BR&gt;↑ XNAを意識してますが、XNA不要です。&lt;BR&gt;managed DirectX なんかでも使えるハズ。&lt;BR&gt;&lt;BR&gt;キモは掴んでるハズなんだが、&lt;BR&gt;ゲームに必要な機能が思いつかんし、&lt;BR&gt;パフォーマンスを考慮してまてん。&lt;BR&gt;同好の志を求ム。&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/154702.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>複数のキーでソート</title><link>http://blogs.wankuma.com/episteme/archive/2008/08/23/154066.aspx</link><pubDate>Sat, 23 Aug 2008 11:02:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/08/23/154066.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/154066.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/08/23/154066.aspx#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/154066.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/154066.aspx</trackback:ping><description>&lt;P&gt;ネタ元 → &lt;A href="http://bbs.wankuma.com/index.cgi?mode=al2&amp;amp;namber=23881"&gt;複数キーによるソートについて&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;まず年齢の昇順に並べ、同年齢なら名前の昇順で... なんてケースですなたぶん。&lt;BR&gt;よくあるケースです。&lt;BR&gt;&lt;BR&gt;だいぶ手慣れてきたC#でやってみた。&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;using System;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;namespace MultiKey_cs {&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; &lt;FONT color=#008000&gt;/*&lt;BR&gt;&amp;nbsp;&amp;nbsp; * ぶっちゃけキモはこいつだけ。&lt;BR&gt;&amp;nbsp;&amp;nbsp; */&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp; class &lt;FONT color=#ff0000&gt;&lt;STRONG&gt;MultiKeyComp&lt;/STRONG&gt;&lt;/FONT&gt;&amp;lt;T&amp;gt; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Comparison&amp;lt;T&amp;gt;[] comps;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public MultiKeyComp(params Comparison&amp;lt;T&amp;gt;[] c) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; comps = c;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private int compare(T x, T y) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int result = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach ( Comparison&amp;lt;T&amp;gt; c in comps ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( (result = c(x, y)) != 0 ) break;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;// Comparison&amp;lt;T&amp;gt; への暗黙の変換&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static implicit operator Comparison&amp;lt;T&amp;gt;(MultiKeyComp&amp;lt;T&amp;gt; arg) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return arg.compare;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; public struct データ {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string key1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string key2;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string key3;&lt;BR&gt;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; public class Program {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void Main() {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int N&amp;nbsp; = 10;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; データ[] data = new データ[N];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Random r = new Random();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for ( int i = 0; i &amp;lt; N; ++i ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; データ datum = new データ();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; datum.key1 = r.Next(10).ToString();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; datum.key2 = r.Next(10).ToString();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; datum.key3 = r.Next(10).ToString();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data[i] = datum;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("ソート前");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Array.ForEach(data, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x =&amp;gt; Console.WriteLine("{0} {1} {2}", x.key1, x.key2, x.key3));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine();&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#ff0000 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Comparison&amp;lt;データ&amp;gt; c = &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new MultiKeyComp&amp;lt;データ&amp;gt;(&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (x,y) =&amp;gt; x.key1.CompareTo(y.key1), // key1:昇順&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (x,y) =&amp;gt; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // key2:don't care&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (x,y) =&amp;gt; y.key3.CompareTo(x.key3)&amp;nbsp; // key3:降順&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Array.Sort(data, c);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("ソート後");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Array.ForEach(data, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x =&amp;gt; Console.WriteLine("{0} {1} {2}", x.key1, x.key2, x.key3));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;lambdaらぶ♪ &lt;BR&gt;未だLINQ脳が未発達なもので ^^;&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/154066.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>夢に出そう...</title><link>http://blogs.wankuma.com/episteme/archive/2008/08/21/153738.aspx</link><pubDate>Thu, 21 Aug 2008 00:14:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/08/21/153738.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/153738.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/08/21/153738.aspx#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/153738.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/153738.aspx</trackback:ping><description>&lt;P&gt;オノデラさんとこからパクったPNGに差し替え、&lt;BR&gt;フォントをメイリオにして"わんくま同盟"6文字分の&lt;BR&gt;SpriteFontをこしらえて背景色いぢって、と。&lt;BR&gt;&lt;BR&gt;&lt;IMG height=320 src="http://episteme.wankuma.com/image/XNAWankuma.jpg" width=411&gt;&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;くま弾幕&lt;/STRONG&gt;。&lt;BR&gt;※ プロジェクトは&lt;A id=_2637f0e626096a42_HomePageDays_DaysList__ctl2_DayItem_DayList__ctl0_TitleUrl HREF="/episteme/archive/2008/08/16/153225.aspx"&gt;&lt;FONT color=#0000ff&gt;ぽろろっか&lt;/FONT&gt;&lt;/A&gt;のを差し替え。&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/153738.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>ぽろろっか</title><link>http://blogs.wankuma.com/episteme/archive/2008/08/16/153225.aspx</link><pubDate>Sat, 16 Aug 2008 15:53:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/08/16/153225.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/153225.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/08/16/153225.aspx#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/153225.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/153225.aspx</trackback:ping><description>ふー、ようやっとVisual Studio 2008 SP1 にupdate完了。&lt;BR&gt;&lt;BR&gt;手始めになにやろかってんで、XNA Game Studio が吐いた&lt;BR&gt;C#コードを&lt;STRONG&gt;C++/CLIに移植してみた&lt;/STRONG&gt;。← ﾔﾝﾈｰﾖふつー&lt;BR&gt;&lt;BR&gt;元ネタは先日赤坂さんがやってくれた"しいたけセッション"&lt;BR&gt;にあった「弾幕もどき」。&lt;BR&gt;&lt;BR&gt;Game Studio が吐いたGame1.cs を削除し、代わりにC++/CLIで&lt;BR&gt;Game1.csをポートしたアセンブリの参照を設定。&lt;BR&gt;C#で書けるならC++/CLIでも書けっだろーってことで。&lt;BR&gt;&lt;BR&gt;&lt;IMG height=320 src="http://episteme.wankuma.com/image/danmaku.jpg" width=411&gt;&lt;BR&gt;↑...無理。スキマがありましぇん。&lt;BR&gt;&lt;BR&gt;プロジェクトはコレ。&lt;BR&gt;&lt;IFRAME style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginWidth=0 marginHeight=0 src="http://cid-07c558f8e11e708f.skydrive.live.com/embedrowdetail.aspx/WillBeRemovedSoon/WindowsGame1.zip" frameBorder=0 scrolling=no&gt;&lt;/IFRAME&gt;&lt;BR&gt;[追記] ↑VBでもやってみたぉ(プロジェクトに同梱)。&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/153225.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>こばりあんと</title><link>http://blogs.wankuma.com/episteme/archive/2008/08/15/153112.aspx</link><pubDate>Fri, 15 Aug 2008 14:04:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/08/15/153112.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/153112.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/08/15/153112.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/153112.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/153112.aspx</trackback:ping><description>&lt;P&gt;インスパイア元 → &lt;A href="http://bbs.wankuma.com/index.cgi?mode=al2&amp;amp;namber=23453"&gt;IListとList&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;ちょっとしたことが気になって試してみた。&lt;BR&gt;まず C++:&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;#include &amp;lt;iostream&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;using namespace std;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;class &lt;FONT color=#0000ff&gt;Base&lt;/FONT&gt; {&lt;BR&gt;public:&lt;BR&gt;&amp;nbsp; virtual &lt;FONT color=#0000ff&gt;Base&lt;/FONT&gt;* me()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { cout &amp;lt;&amp;lt; "Base::me()\n"; return &lt;FONT color=#0000ff&gt;this&lt;/FONT&gt;; }&lt;BR&gt;};&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;class &lt;FONT color=#ff0000&gt;Derived &lt;/FONT&gt;: public &lt;FONT color=#0000ff&gt;Base&lt;/FONT&gt; {&lt;BR&gt;public:&lt;BR&gt;&amp;nbsp; virtual &lt;FONT color=#ff0000&gt;Derived&lt;/FONT&gt;* me() &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { cout &amp;lt;&amp;lt; "Derived::me()\n"; return &lt;FONT color=#ff0000&gt;this&lt;/FONT&gt;; }&lt;BR&gt;};&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;int main() {&lt;BR&gt;&amp;nbsp; &lt;FONT color=#0000ff&gt;Base&lt;/FONT&gt;* p = new &lt;FONT color=#ff0000&gt;Derived&lt;/FONT&gt;();&lt;BR&gt;&amp;nbsp; &lt;FONT color=#0000ff&gt;Base&lt;/FONT&gt;* r = p-&amp;gt;me();&lt;BR&gt;&amp;nbsp; if ( dynamic_cast&amp;lt;&lt;FONT color=#ff0000&gt;Derived&lt;/FONT&gt;*&amp;gt;(r) ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "Derived returned.\n";&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;Base.me() と Derived.me() は戻り値の型が一致しません。&lt;BR&gt;でも呑んでくれます。DerivedはBaseから導出されてんで&lt;BR&gt;Derived*はBase*と看做してもえぇからです。&lt;BR&gt;&lt;BR&gt;次いでC#&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;using System;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;class &lt;FONT color=#0000ff&gt;Base&lt;/FONT&gt; {&lt;BR&gt;public virtual &lt;FONT color=#0000ff&gt;Base&lt;/FONT&gt; me()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { Console.WriteLine("Base.me()"); return &lt;FONT color=#0000ff&gt;this&lt;/FONT&gt;; }&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;class &lt;FONT color=#ff0000&gt;Derived&lt;/FONT&gt; : &lt;FONT color=#0000ff&gt;Base&lt;/FONT&gt; {&lt;BR&gt;public override &lt;FONT color=#ff0000&gt;Derived&lt;/FONT&gt; me() &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { Console.WriteLine("Derived.me()"); return &lt;FONT color=#ff0000&gt;this&lt;/FONT&gt;; }&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;class Program {&lt;BR&gt;&amp;nbsp; static void Main() {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;Base&lt;/FONT&gt; p = new &lt;FONT color=#ff0000&gt;Derived&lt;/FONT&gt;();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff&gt; Base&lt;/FONT&gt; r = p.me();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( r is &lt;FONT color=#ff0000&gt;Derived&lt;/FONT&gt; ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Derived returned.");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;ダメっすね。&lt;BR&gt;&lt;FONT color=#808080&gt;&amp;nbsp; error CS0508: 'Derived.me()': オーバーライドされたメンバ&lt;BR&gt;&amp;nbsp; 'Base.me()' に対応するために戻り値の型は 'Base' でなければなりません&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;カタいことゆーなよおーーー&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;※ ちょい昔はC++でもダメでした。シグニチャに完全一致が求められました。&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/153112.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>blogだけでは飽き足らず</title><link>http://blogs.wankuma.com/episteme/archive/2008/08/13/152929.aspx</link><pubDate>Wed, 13 Aug 2008 22:16:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/08/13/152929.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/152929.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/08/13/152929.aspx#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/152929.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/152929.aspx</trackback:ping><description>&lt;P&gt;&lt;A id=viewpost.ascx_TitleUrl href="/episteme/archive/2008/07/06/147603.aspx"&gt;&lt;FONT color=#0000ff&gt;夏も初めのごめんなさい&lt;/FONT&gt;&lt;/A&gt; あたりから&lt;BR&gt;短期集中連載(?)してたマージ・ソートの「まとめ」をCodeZineに書きました。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://codezine.jp/a/article/aid/2886.aspx"&gt;&lt;FONT color=#0000ff&gt;マージ・ソート : 巨大データのソート法&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;ての。&lt;BR&gt;マージ・ソートのアルゴリズム解説とその実装を&lt;BR&gt;VB, C#, C++/CLI でやらかしてます。&lt;BR&gt;&lt;BR&gt;インスパイア元 → &lt;A id=viewpost.ascx_TitleUrl href="/naka/archive/2008/08/13/152858.aspx"&gt;&lt;FONT color=#0000ff&gt;すごいひとです！&lt;/FONT&gt;&lt;/A&gt; &lt;BR&gt;名著 「&lt;A href="http://astore.amazon.co.jp/episteme00-22/detail/4764901625/503-6660086-6234330"&gt;&lt;FONT color=#206ba2&gt;アルゴリズムとデータ構造&lt;/FONT&gt;&lt;/A&gt;」をよこちょに置いて書いてました。&lt;BR&gt;いやね、WPFとかWCFとかLINQとかXNAとか、みんなすごいなーと&lt;BR&gt;思うんですよ。僕は新しいことに手を染めず、そこそこ枯れてきた頃に&lt;BR&gt;美味しいとこだけ頂戴するばかりです。&lt;BR&gt;&lt;BR&gt;もう幾度となく繰り返してることですが、近頃のビギナ(に限らんかな)は&lt;BR&gt;本を読まなくなりました。大概のことはネット検索すりゃカタがつきます&lt;BR&gt;しね。けども僕は本を大事にしたい。「アルゴリズムとデータ構造」はもう&lt;BR&gt;30年以上前の解説書です。けども僕のプログラマ稼業でいちばん役に立った&lt;BR&gt;本だし今でもときおり読み返します。&lt;BR&gt;&lt;BR&gt;まぁ、そんな想いを若い人たちにちょっとでも伝えたくて、ほんのりカビ&lt;BR&gt;臭いこんなネタを書いてみたりするわけね。&lt;BR&gt;&lt;BR&gt;よろしく御贔屓のほどを。&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/152929.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>あいまいさ回避...しろよ!</title><link>http://blogs.wankuma.com/episteme/archive/2008/08/12/152751.aspx</link><pubDate>Tue, 12 Aug 2008 15:35:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/08/12/152751.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/152751.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/08/12/152751.aspx#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/152751.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/152751.aspx</trackback:ping><description>&lt;P&gt;&lt;A id=_fe1c4505b2a94c43_HomePageDays_DaysList__ctl0_DayItem_DayList__ctl0_TitleUrl HREF="/episteme/archive/2008/08/12/152711.aspx"&gt;&lt;FONT color=#0000ff&gt;VBのスコープわがんね&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;でちょっと思ったんだけどぉ&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp; public static void Main() {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int[] data = new int[] { 1, 2, 3, 4, 5};&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach ( int &lt;FONT color=#0000ff&gt;item &lt;/FONT&gt;in data ) { &lt;FONT color=#008000&gt;// ココと&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(item);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int &lt;FONT color=#0000ff&gt;item&lt;/FONT&gt;; &lt;FONT color=#008000&gt;// ココでカブる&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp; }&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;C#だと後発の&lt;FONT face="Courier New"&gt; int &lt;FONT color=#0000ff&gt;item&lt;/FONT&gt;&lt;/FONT&gt; でエラーとなります。&lt;BR&gt;&lt;BR&gt;　&lt;FONT color=#808080&gt;ローカルの変数 'item'をこのスコープで宣言することはできません。&lt;BR&gt;　これは、'子'スコープで別の意味を持つ 'item' の意味が変更されるのを&lt;BR&gt;　避けるためです。&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;VBよか親切な希ガス。&lt;/P&gt;
&lt;P&gt;でね、こいつをエラーとするほどにあいまいさを回避したいのならば&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;class Foo {&lt;BR&gt;&amp;nbsp; private int &lt;FONT color=#0000ff&gt;item&lt;/FONT&gt;;&lt;BR&gt;&amp;nbsp; public void set(int &lt;FONT color=#0000ff&gt;item&lt;/FONT&gt;) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#ff0000&gt;&lt;STRONG&gt;なぜにコレをエラーとしないのですか! &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT size=4&gt;スコープもろカブり&lt;/FONT&gt;やないですか! &lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp; }&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;Public Class Foo&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private &lt;FONT color=#0000ff&gt;item&lt;/FONT&gt; As Integer&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub SetItem(ByVal &lt;FONT color=#0000ff&gt;item&lt;/FONT&gt; As Integer)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#ff0000&gt;&lt;STRONG&gt;VBも同罪!&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;BR&gt;End Class&lt;BR&gt;&lt;BR&gt;納得のいく説明を求ム。&amp;gt; .Netなひと&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/152751.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>