<?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>.NET</title><link>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/category/419.aspx</link><description>.NET</description><managingEditor>επιστημη</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>επιστημη</dc:creator><title>Visual Studio 11 から本気出す! WPF with C++/CLI</title><link>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2012/04/28/268916.aspx</link><pubDate>Sat, 28 Apr 2012 23:51:00 GMT</pubDate><guid>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2012/04/28/268916.aspx</guid><wfw:comment>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/268916.aspx</wfw:comment><comments>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2012/04/28/268916.aspx#Feedback</comments><slash:comments>507</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/commentRss/268916.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/services/trackbacks/268916.aspx</trackback:ping><description>&lt;p&gt;&lt;iframe style="width: 120px; height: 240px;" marginHeight="0" src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=episteme00-22&amp;amp;o=9&amp;amp;p=8&amp;amp;l=as4&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;ref=ss_til&amp;amp;asins=4774150169" frameBorder="0" marginWidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br&gt;&lt;br&gt;レビューやらせていただきましたよ。&lt;br&gt;んで、せっかくだから「&lt;strong&gt;周回遅れ&lt;/strong&gt;にもほどがあんぞｦｲ」なWPFに手を付けます。&lt;br&gt;いやね、Visual Studio 11でよぅやっとC++/CLIのインテリセンスが復活してくれたんで、&lt;br&gt;ﾏﾝﾄﾞｸｾｰことやる気になったっちゅーのが本音。&lt;br&gt;てかさ、WPFアプリケーションてばC++の&lt;strong&gt;出番ナシ&lt;/strong&gt;なのが癪に障るんで、&lt;br&gt;ひな形生成だけをC#にやらせ、残りは&lt;strong&gt;ぜーんぶC++/CLI&lt;/strong&gt;で書いてみるココロミ。&lt;br&gt;&lt;br&gt;おためしにこしらえたのは毎度毎度のカウンター。&lt;br&gt;「3.2.3 視覚的デザインツールの利用」にあったMVVMをほとんどそのまま&lt;strong&gt;パクらせてもらい&lt;/strong&gt;ました。&lt;br&gt;
&lt;img src="http://www1.c3-net.ne.jp/episteme/images/WPF_cpp.png"&gt;&lt;div class="code"&gt;&lt;pre&gt;&amp;lt;Window x:Class="DataBindingSample.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="データ バインディング サンプル" Width="193" SizeToContent="Height" Height="157"&amp;gt;
    &amp;lt;StackPanel&amp;gt;
        &amp;lt;TextBox Text="&lt;font color="#ff0000"&gt;{Binding Count}&lt;/font&gt;" FontSize="36" FontWeight="Bold" TextAlignment="Center" /&amp;gt;
        &amp;lt;Button Content="+" Command="&lt;font color="#ff0000"&gt;{Binding IncCommand}&lt;/font&gt;" /&amp;gt;
        &amp;lt;Button Content="-" Command="&lt;font color="#ff0000"&gt;{Binding DecCommand}&lt;/font&gt;" /&amp;gt;
    &amp;lt;/StackPanel&amp;gt;
&amp;lt;/Window&amp;gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;XAMLはこんな↑カンジね、表示とボタンをそれぞれ CountとIncCommand/DecCommandにバインドしてます。&lt;br&gt;以降C#からはしばらくオサラバ、C++/CLIでCLRクラスライブラリを用意して参照させます。&lt;br&gt;ViewModel がコレ↓&lt;div class="code"&gt;&lt;pre&gt;&lt;font color="blue"&gt;#ifndef&lt;/font&gt; MAINWINDOWVIEWMODEL_H__
&lt;font color="blue"&gt;#define&lt;/font&gt; MAINWINDOWVIEWMODEL_H__

&lt;font color="blue"&gt;namespace&lt;/font&gt; DataBindingSample {

  &lt;font color="blue"&gt;public&lt;/font&gt; ref &lt;font color="blue"&gt;class&lt;/font&gt; &lt;strong&gt;MainWindowViewModel&lt;/strong&gt; : &lt;font color="blue"&gt;public&lt;/font&gt; System::ComponentModel::INotifyPropertyChanged {
  &lt;font color="blue"&gt;public&lt;/font&gt;:
    property &lt;font color="blue"&gt;int&lt;/font&gt; &lt;strong&gt;&lt;font color="#ff0000"&gt;Count&lt;/font&gt;&lt;/strong&gt; {
      &lt;font color="blue"&gt;int&lt;/font&gt; get();
      &lt;font color="blue"&gt;void&lt;/font&gt; set(&lt;font color="blue"&gt;int&lt;/font&gt; value);
    }

    &lt;font color="blue"&gt;virtual&lt;/font&gt; event System::ComponentModel::PropertyChangedEventHandler^ PropertyChanged;

    &lt;font color="blue"&gt;void&lt;/font&gt; &lt;strong&gt;&lt;font color="#ff0000"&gt;attachCommand&lt;/font&gt;&lt;/strong&gt;(System::Action&amp;lt;Object^&amp;gt;^ inc, System::Action&amp;lt;Object^&amp;gt;^ dec);
    &lt;font color="blue"&gt;void&lt;/font&gt; &lt;strong&gt;&lt;font color="#ff0000"&gt;Update&lt;/font&gt;&lt;/strong&gt;(&lt;font color="blue"&gt;int&lt;/font&gt; count);

    property System::Windows::Input::ICommand^ &lt;font color="#ff0000"&gt;&lt;strong&gt;IncCommand&lt;/strong&gt;&lt;/font&gt; 
      { System::Windows::Input::ICommand^ get(); }
    property System::Windows::Input::ICommand^ &lt;strong&gt;&lt;font color="#ff0000"&gt;DecCommand&lt;/font&gt;&lt;/strong&gt; 
      { System::Windows::Input::ICommand^ get(); }

  &lt;font color="blue"&gt;private&lt;/font&gt;:
    &lt;font color="blue"&gt;int&lt;/font&gt; _Count;
    System::Windows::Input::ICommand^ incCommand;
    System::Windows::Input::ICommand^ decCommand;
  };
 
}

&lt;font color="blue"&gt;#endif&lt;/font&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;attachCommandでView(のIncCommand/DecCommand)からModelに、&lt;br&gt;UpdateでModel（のカウント値変更)をViewに飛ばします。&lt;br&gt;&lt;br&gt;カウンタ本体:Counter と ViewModelに接続するための CounterModel はそれぞれ:
&lt;div class="code"&gt;&lt;pre&gt;&lt;font color="blue"&gt;#ifndef&lt;/font&gt; COUNTER_H__
&lt;font color="blue"&gt;#define&lt;/font&gt; COUNTER_H__

&lt;font color="blue"&gt;namespace&lt;/font&gt; DataBindingSample {

  &lt;font color="blue"&gt;public&lt;/font&gt; ref &lt;font color="blue"&gt;class&lt;/font&gt; &lt;strong&gt;Counter&lt;/strong&gt; {
  &lt;font color="blue"&gt;public&lt;/font&gt;:
    &lt;font color="blue"&gt;void&lt;/font&gt; inc();
    &lt;font color="blue"&gt;void&lt;/font&gt; dec();
    &lt;font color="blue"&gt;int&lt;/font&gt; count();

  &lt;font color="blue"&gt;private&lt;/font&gt;:
    &lt;font color="blue"&gt;int&lt;/font&gt; count_;
  };

  &lt;font color="blue"&gt;public&lt;/font&gt; ref &lt;font color="blue"&gt;class&lt;/font&gt; &lt;strong&gt;CounterModel&lt;/strong&gt; : Counter {
  &lt;font color="blue"&gt;public&lt;/font&gt;:

    &lt;font color="green"&gt;// Model→ViewModel&lt;/font&gt;
    event System::Action&amp;lt;&lt;font color="blue"&gt;int&lt;/font&gt;&amp;gt;^ &lt;strong&gt;&lt;font color="#ff0000"&gt;CountUpdatedHandler&lt;/font&gt;&lt;/strong&gt;;

    &lt;font color="green"&gt;// ViewModel→Model &lt;/font&gt;
    property System::Action&amp;lt;Object^&amp;gt;^ &lt;font color="#ff0000"&gt;&lt;strong&gt;Increment&lt;/strong&gt;&lt;/font&gt; { System::Action&amp;lt;Object^&amp;gt;^ get(); }
    property System::Action&amp;lt;Object^&amp;gt;^ &lt;font color="#ff0000"&gt;&lt;strong&gt;Decrement&lt;/strong&gt;&lt;/font&gt; { System::Action&amp;lt;Object^&amp;gt;^ get(); }

  &lt;font color="blue"&gt;private&lt;/font&gt;:

    &lt;font color="blue"&gt;void&lt;/font&gt; Notify();

    &lt;font color="blue"&gt;void&lt;/font&gt; inc(Object^ dummy);
    &lt;font color="blue"&gt;void&lt;/font&gt; dec(Object^ dummy);

  };

}

&lt;font color="blue"&gt;#endif&lt;/font&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;CountUpdateHandlerとIncrement/Decrement がViewModelとの接続ポートになってます。&lt;br&gt;&lt;br&gt;んでもって MainWindow, MainWindowViewModel, CounterModel を&lt;strong&gt;がしゃがしゃ繋ぐ&lt;/strong&gt;トコ&lt;br&gt;をC#側にねじ込みます。 MainWindowViewModel と CounterModel は App のstaticメンバ&lt;br&gt;にしちゃいました。
&lt;div class="code"&gt;&lt;pre&gt;&lt;font color="green"&gt;/* 
 * App.xaml.cs
 */&lt;/font&gt;
&lt;font color="blue"&gt;using&lt;/font&gt; System.Windows;

&lt;font color="blue"&gt;namespace&lt;/font&gt; DataBindingSample {

  &lt;font color="blue"&gt;public&lt;/font&gt; partial &lt;font color="blue"&gt;class&lt;/font&gt; App : Application {

    &lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;static&lt;/font&gt; MainWindowViewModel &lt;strong&gt;&lt;font color="#ff0000"&gt;ViewModel&lt;/font&gt;&lt;/strong&gt; {
      get { 
        &lt;font color="blue"&gt;if&lt;/font&gt; ( viewmodel_ == null )
          viewmodel_ = &lt;font color="blue"&gt;new&lt;/font&gt; MainWindowViewModel();
        &lt;font color="blue"&gt;return&lt;/font&gt; viewmodel_;
      }
    }

    &lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;static&lt;/font&gt; CounterModel &lt;strong&gt;&lt;font color="#ff0000"&gt;Model&lt;/font&gt;&lt;/strong&gt; {
      get {
        &lt;font color="blue"&gt;if&lt;/font&gt; ( model_ == null )
          model_ = &lt;font color="blue"&gt;new&lt;/font&gt; CounterModel();
        &lt;font color="blue"&gt;return&lt;/font&gt; model_;
      }
    }

    &lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;static&lt;/font&gt; MainWindowViewModel viewmodel_;
    &lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;static&lt;/font&gt; CounterModel model_;
  }

}

&lt;font color="green"&gt;/*
 * MainWindow.xaml.cs
 */&lt;/font&gt;
&lt;font color="blue"&gt;using&lt;/font&gt; System.Windows;

&lt;font color="blue"&gt;namespace&lt;/font&gt; DataBindingSample {

  &lt;font color="blue"&gt;public&lt;/font&gt; partial &lt;font color="blue"&gt;class&lt;/font&gt; MainWindow : Window {
    &lt;font color="blue"&gt;public&lt;/font&gt; MainWindow() {
      InitializeComponent();
&lt;strong&gt;      &lt;font color="blue"&gt;this&lt;/font&gt;.DataContext = App.ViewModel;
      App.ViewModel.attachCommand(App.Model.Increment, App.Model.Decrement);
      App.Model.CountUpdatedHandler += App.ViewModel.Update;
&lt;/strong&gt;    }
  }

}
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;C++/CLI側の実装(.cpp)は割愛。ソリューションまるごとうｐするから読んでやって。&lt;br&gt;
&lt;iframe height="120" src="https://skydrive.live.com/embed?cid=07C558F8E11E708F&amp;amp;resid=7C558F8E11E708F%21773&amp;amp;authkey=AP1tEpI6gEkyPmk" frameBorder="0" width="98" scrolling="no"&gt;&lt;/iframe&gt;&lt;br&gt;白状すればMVVMってハジメテなの。おもきし&lt;strong&gt;我流&lt;/strong&gt;だし。ｶﾞｽｶﾞｽ突っ込んでやってくだせ。&lt;br&gt;&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/aggbug/268916.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>わんくま東京勉強会#56 懇親会ふぉろー</title><link>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2011/02/20/197105.aspx</link><pubDate>Sun, 20 Feb 2011 00:32:00 GMT</pubDate><guid>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2011/02/20/197105.aspx</guid><wfw:comment>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/197105.aspx</wfw:comment><comments>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2011/02/20/197105.aspx#Feedback</comments><slash:comments>23</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/commentRss/197105.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/services/trackbacks/197105.aspx</trackback:ping><description>&lt;P&gt;懇親会の席上でおもろいネタで盛り上がってました:&lt;/P&gt;
&lt;P&gt;　&lt;STRONG&gt;「コンストラクタが例外を投げるのはアリか?」&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;僕は「ないわー」派についていたのですが、帰りの電車に揺られて酔いを醒ましてるうちに「アリかも」と思い始めてました。&lt;FONT color=#808080 size=2&gt;# かなはるちゃんいぢめてごめんよー&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;そもそも例外処理てぇのは&lt;BR&gt;「エラーを&lt;STRONG&gt;検出できるが対処できない&lt;/STRONG&gt;」呼ばれ側 と&lt;BR&gt;「エラーに&lt;STRONG&gt;対処できるが検出できない&lt;/STRONG&gt;」呼び側 &lt;BR&gt;との間でエラーをやり取りするためのからくり、なハズです。&lt;/P&gt;
&lt;P&gt;するってーと例外ちゅーのは&lt;BR&gt;"あり得ないこと"が起こった事を知らせるっちゅーより、&lt;BR&gt;"&lt;STRONG&gt;対処不能なこと&lt;/STRONG&gt;"が起こった事を知らせるもんだろ、と。&lt;/P&gt;
&lt;P&gt;であるなら、コンストラクタ内で"対処不能なこと"が起こったのならその旨を呼び側に伝えるべく例外投げるのは&lt;STRONG&gt;アリ&lt;/STRONG&gt;かと思うですね。&lt;/P&gt;
&lt;P&gt;※ かたやデストラクタで例外投げるのはどんなもんよ。&lt;BR&gt;デストラクタは往々にして&lt;STRONG&gt;暗黙のうち&lt;/STRONG&gt;に呼ばれるし、.NETだといつ呼ばれるかはおろか確実に呼ばれるかすら定かじゃない。んなもんcatchできひんやん。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/aggbug/197105.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>わんくま東京勉強会#56 LTふぉろー</title><link>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2011/02/20/197104.aspx</link><pubDate>Sun, 20 Feb 2011 00:29:00 GMT</pubDate><guid>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2011/02/20/197104.aspx</guid><wfw:comment>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/197104.aspx</wfw:comment><comments>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2011/02/20/197104.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/commentRss/197104.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/services/trackbacks/197104.aspx</trackback:ping><description>&lt;P&gt;昨年夏の横浜勉強会以来とーんとご無沙汰してたわんくま勉強会、おさしみぶりに顔出しました。日本マイクロソフト＠品川新社屋に潜入したかったし。&lt;/P&gt;
&lt;P&gt;&amp;#8230;えー、中さんゴメンナサイ。Kinect Game DVDを一枚&lt;STRONG&gt;おシャカ&lt;/STRONG&gt;にしてまいました。この埋め合わせは必ずや。どうかご寛恕いただきますよう平身低頭 _o/L&lt;/P&gt;
&lt;P&gt;今回はえムナウ御大プロデュースでWPF/Silverlightスペシャル。native屋の僕が&lt;STRONG&gt;付け入るスキ&lt;/STRONG&gt;などあろうはずもなく、LTで茶を濁すことに。&lt;/P&gt;
&lt;P&gt;LTやらせろと手ぇ挙げてはみたものの、肝心のネタを決めかね、あろうことか触り始めてわずか二時間の&lt;STRONG&gt;Python&lt;/STRONG&gt;でくっちゃべったわけですが案の定しゃべり足りんうちにTime Overコいてまいました。ちーと悔しいのでここでふぉろー。&lt;/P&gt;
&lt;P&gt;Pythonは多重継承を許します:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;class Base1:&lt;BR&gt;&amp;nbsp; def fun(self):&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print('Base1.fun()')&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;class Base2:&lt;BR&gt;&amp;nbsp; def fun(self):&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print('Base2.fun()')&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;class Derived&lt;FONT color=#0000ff&gt;(Base1,Base2)&lt;/FONT&gt;:&lt;BR&gt;&amp;nbsp; pass # なにもしない&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;とか書けばDerivedはBase1とBase2から導出されます。ここで:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;d = Derived() # インスタンスをこしらえて&lt;BR&gt;d.fun() # fun()を呼ぶ&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;とかやるとd.fun()はBase1.fun()とBase2.fun()のどっちが呼ばれるでしょか。&lt;BR&gt;C++でこんなの書いたらどっちのfun()を呼ぶか決めかねてコンパイルエラーです。&lt;BR&gt;かたやPythonでは動いてしまいます。&lt;/P&gt;
&lt;P&gt;d.fun()されたとき、Derivedそれ自身はfun()を持たないので、基底クラスに遡って探しにいきます。メソッドを解決する順序:&lt;STRONG&gt;MRO&lt;/STRONG&gt;(Method Resolution Order)はクラス定義時にカッコ内にに並べた順となります。&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;class Derived(Base1,Base2):&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;と定義したのでMROは:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Derived&lt;BR&gt;Base1&lt;BR&gt;Base2&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;の順となり、d.fun()はBase1.fun()が呼ばれることになるです。&lt;/P&gt;
&lt;P&gt;MROの裏をかいてみましょうか。&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;class Base1:&lt;BR&gt;class Base2:&lt;BR&gt;class Derived1(&lt;FONT color=#0000ff&gt;Base1&lt;/FONT&gt;,&lt;FONT color=#ff0000&gt;Base2&lt;/FONT&gt;): # [1]&lt;BR&gt;class Derived2(&lt;FONT color=#ff0000&gt;Base2&lt;/FONT&gt;,&lt;FONT color=#0000ff&gt;Base1&lt;/FONT&gt;): # [2]&lt;BR&gt;class MoreDerived(Derived1,Derived2):&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;こんなコード書くとMoreDerivedのMROを決定する際に([1]と[2]においてBase1とBase2の順序が異なるために)Base1とBase2のどっちを先にするか決めかねてエラーになるですよ。&lt;/P&gt;
&lt;P&gt;よーするにPythonの多重継承は単一継承に置き換えることで実現する&lt;STRONG&gt;"なんちゃって多重継承"&lt;/STRONG&gt;と考えられます。だとすれば単一継承しか許さない.NETで実装したPython処理系:IronPythonが作れるのも頷けますです。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/aggbug/197104.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>読んでます: .NET 開発テクノロジー入門</title><link>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2011/01/04/196258.aspx</link><pubDate>Tue, 04 Jan 2011 19:16:00 GMT</pubDate><guid>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2011/01/04/196258.aspx</guid><wfw:comment>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/196258.aspx</wfw:comment><comments>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2011/01/04/196258.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/commentRss/196258.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/services/trackbacks/196258.aspx</trackback:ping><description>&lt;P style="MARGIN: 0mm 0mm 0pt" class=MsoPlainText&gt;&lt;FONT size=2&gt;&lt;FONT face="ＭＳ ゴシック"&gt;そこそこ大きな本屋さんの書架を眺めれば、いわゆるビギナ本が並んでいます。&lt;SPAN lang=EN-US&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0mm 0mm 0pt" class=MsoPlainText&gt;&lt;FONT size=2&gt;&lt;FONT face="ＭＳ ゴシック"&gt;「よくわかる&lt;SPAN lang=EN-US&gt;Visual C#&lt;/SPAN&gt;」とか「一週間でマスター&lt;SPAN lang=EN-US&gt; Visual Basic&lt;/SPAN&gt;」とか、そんなカン&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="ＭＳ ゴシック"&gt;ジのタイトルで。&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0mm 0mm 0pt" class=MsoPlainText&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT size=2 face="ＭＳ ゴシック"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0mm 0mm 0pt" class=MsoPlainText&gt;&lt;FONT size=2&gt;&lt;FONT face="ＭＳ ゴシック"&gt;このテのビギナ本、多くはフォームにコントロールをペタペタ貼ってイベントにハン&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="ＭＳ ゴシック"&gt;ドラ括りつけ、あーしてこーすればあっちゅーまにラーメンタイマーやら数当てゲー&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="ＭＳ ゴシック"&gt;ムができちゃうよ&lt;SPAN lang=EN-US&gt;! &lt;/SPAN&gt;みたいな。&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0mm 0mm 0pt" class=MsoPlainText&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT size=2 face="ＭＳ ゴシック"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0mm 0mm 0pt" class=MsoPlainText&gt;&lt;FONT size=2&gt;&lt;FONT face="ＭＳ ゴシック"&gt;ビギナ本は言語&lt;SPAN lang=EN-US&gt;/&lt;/SPAN&gt;開発環境をはじめて触るにはとても重宝します。まずはそこに書か&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="ＭＳ ゴシック"&gt;れたチュートリアルにしたがって操作すればアプリケーションの作り方の基本がわか&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="ＭＳ ゴシック"&gt;ります。船長として船に乗り込み、大海原に漕ぎ出すことができます。が&amp;#8230;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0mm 0mm 0pt" class=MsoPlainText&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT size=2 face="ＭＳ ゴシック"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0mm 0mm 0pt" class=MsoPlainText&gt;&lt;FONT size=2&gt;&lt;FONT face="ＭＳ ゴシック"&gt;新米船長は乗組員のことがさっぱりわかっていません。船内をうろつけば数多くの船&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="ＭＳ ゴシック"&gt;員が船長の指示を待っていて前を通ればうやうやしく敬礼してくれるんだけど。彼ら&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="ＭＳ ゴシック"&gt;の胸には名札が付いているけども、そこに書かれているのは名前だけ。彼が一体何者&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="ＭＳ ゴシック"&gt;か、コックなのか船医なのか機関長なのか、さっぱり見当がつきません。船員をコキ&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="ＭＳ ゴシック"&gt;使わにゃ船長ひとりではなにもできず、やがて失意のうちに船を下りてしまいます。&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0mm 0mm 0pt" class=MsoPlainText&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT size=2 face="ＭＳ ゴシック"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0mm 0mm 0pt" class=MsoPlainText&gt;&lt;FONT face="ＭＳ ゴシック"&gt;&lt;FONT size=4&gt;『&lt;/FONT&gt;&lt;A href="http://www.amazon.co.jp/dp/4822294412"&gt;&lt;FONT size=4&gt;&lt;SPAN lang=EN-US&gt;.NET &lt;/SPAN&gt;開発テクノロジー入門&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=4&gt;』&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0mm 0mm 0pt" class=MsoPlainText&gt;&lt;FONT size=2&gt;&lt;FONT face="ＭＳ ゴシック"&gt;マイクロソフト株式会社 エバンジェリストチーム 著&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0mm 0mm 0pt" class=MsoPlainText&gt;&lt;FONT size=2&gt;&lt;FONT face="ＭＳ ゴシック"&gt;日経&lt;SPAN lang=EN-US&gt;BP&lt;/SPAN&gt;社&lt;SPAN lang=EN-US&gt; ISBN978-4-8222-9441-0&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0mm 0mm 0pt" class=MsoPlainText&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT size=2 face="ＭＳ ゴシック"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0mm 0mm 0pt" class=MsoPlainText&gt;&lt;FONT size=2&gt;&lt;FONT face="ＭＳ ゴシック"&gt;この本、「乗組員ハンドブック」ってカンジ&lt;SPAN lang=EN-US&gt;? &lt;/SPAN&gt;乗組員それぞれの名前と役割、それと&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="ＭＳ ゴシック"&gt;おおまかなプロフィールと指示の与え方が記されています。&lt;SPAN lang=EN-US&gt;MSDN&lt;/SPAN&gt;との橋渡しにいかが&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="ＭＳ ゴシック"&gt;でしょ。&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0mm 0mm 0pt" class=MsoPlainText&gt;&lt;FONT size=2&gt;&lt;FONT face="ＭＳ ゴシック"&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/aggbug/196258.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>まんでるぶろ集合(まだまだ続くよー)</title><link>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2009/12/10/183711.aspx</link><pubDate>Thu, 10 Dec 2009 16:49:00 GMT</pubDate><guid>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2009/12/10/183711.aspx</guid><wfw:comment>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/183711.aspx</wfw:comment><comments>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2009/12/10/183711.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/commentRss/183711.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/services/trackbacks/183711.aspx</trackback:ping><description>&lt;P&gt;CodeZine でお披露目 → &lt;A href="http://codezine.jp/article/detail/4650"&gt;.NETでマンデルブロ集合を描く&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;コードを見せるっちゅーより、しくみとゆーかからくりとゆーか、&lt;BR&gt;&lt;STRONG&gt;どんなダンドリ&lt;/STRONG&gt;で描いているか、を書きました。&lt;BR&gt;.NET&lt;STRONG&gt;三大言語&lt;/STRONG&gt;で実装したソリューションが付いてます。&lt;BR&gt;&lt;BR&gt;こっからさらに悪ノリして、VC++ 10.0 で追加となる &lt;STRONG&gt;PPL &lt;/STRONG&gt;使って&lt;BR&gt;高速化するっちゅー「後日談」を書いてます。&lt;BR&gt;&lt;BR&gt;C++/CLIだとPPLが使えないって制限があるんで、native-DLLに&lt;BR&gt;仕立ててそいつをC++/CLIから呼び出すっちゅー&lt;BR&gt;えぴちゃん&lt;STRONG&gt;伝家の宝刀&lt;/STRONG&gt;を抜きますですﾎﾎﾎ&lt;BR&gt;&lt;BR&gt;年内に出せるといいなーとか。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/aggbug/183711.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>まんでるぶろ集合(しょにょさん)</title><link>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2009/11/29/183370.aspx</link><pubDate>Sun, 29 Nov 2009 18:20:00 GMT</pubDate><guid>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2009/11/29/183370.aspx</guid><wfw:comment>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/183370.aspx</wfw:comment><comments>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2009/11/29/183370.aspx#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/commentRss/183370.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/services/trackbacks/183370.aspx</trackback:ping><description>&lt;p&gt;CodeZine向けに記事書いて、いましがた&lt;strike&gt;脱肛&lt;/strike&gt;脱稿しますた。&lt;br&gt;ナカミはマンデルブロ集合の描画に必要な道具たちとそれらの関係てゆーか、&lt;br&gt;「そこそこスナオに設計/実装したらこんなんできましたケド」みたいな。&lt;br&gt;&lt;a href="http://episteme.wankuma.com/photo/a3a3f2b60ff2_101BD/fig_02.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ユースケース的表現" border="0" alt="ユースケース的表現" src="http://episteme.wankuma.com/photo/a3a3f2b60ff2_101BD/fig_02_thumb.jpg" width="244" height="155"&gt;&lt;/a&gt; &lt;a href="http://episteme.wankuma.com/photo/a3a3f2b60ff2_101BD/fig_04.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="キモとなるクラス之図" border="0" alt="キモとなるクラス之図" src="http://episteme.wankuma.com/photo/a3a3f2b60ff2_101BD/fig_04_thumb.jpg" width="244" height="207"&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; width: 98px; padding-right: 0px; height: 115px; padding-top: 0px" title="Preview" marginheight="0" src="http://cid-07c558f8e11e708f.skydrive.live.com/embedicon.aspx/.Public/Mandelbrot.zip" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt; &lt;p&gt;↑一足お先にコードを公開。&lt;br&gt;C#, VB.NET, C++/CLI 版が詰まってるっちゅー大盤振舞なりー&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/aggbug/183370.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>データバインディングのおべんきょ。 番外その１。</title><link>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2009/05/09/172658.aspx</link><pubDate>Sat, 09 May 2009 07:39:00 GMT</pubDate><guid>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2009/05/09/172658.aspx</guid><wfw:comment>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/172658.aspx</wfw:comment><comments>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2009/05/09/172658.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/commentRss/172658.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/services/trackbacks/172658.aspx</trackback:ping><description>&lt;P&gt;&lt;A id=_de2f8530627c8cda_HomePageDays_DaysList__ctl0_DayItem_DayList__ctl0_TitleUrl HREF="/episteme/archive/2009/05/07/172522.aspx"&gt;&lt;FONT color=#0000ff&gt;.NET言語相互変換計画&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;のつづき。&lt;/P&gt;
&lt;P&gt;「データバインディングのおべんきょ。」をパクらせてもらう。&lt;BR&gt;とりこびとｾﾝｾはComboBoxとListをバインドしてみせてくれたわけだが、&lt;BR&gt;僕はDataGridViewとListをバインドしてみる。&lt;/P&gt;
&lt;P&gt;毎度のことで新規VBプロジェクト: WindowsApplication1をひとつ起こす。&lt;BR&gt;次に用意するのは WankumaProgrammer.vb。こんなの。&lt;BR&gt;&lt;BR&gt;
&lt;TABLE border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT size=2 face="Courier New"&gt;Public Class WankumaProgrammer&lt;/FONT&gt; 
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private _name As String = String.Empty&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private _skill As String = String.Empty&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Property &lt;FONT color=#ff0000&gt;Name&lt;/FONT&gt;() As String&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get&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; Return _name&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Get&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set(ByVal value As String)&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; _name = value&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Set&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Property&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Property &lt;FONT color=#ff0000&gt;Skill&lt;/FONT&gt;() As String&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get&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; Return _skill&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Get&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set(ByVal value As String)&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; _skill = value&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Set&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Property&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub New()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub New(ByVal name As String, ByVal skill As String)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.Name = name&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.Skill = skill&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;End Class&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;どってことないね、プロパティ:NameとSkillを持ったものです。&lt;BR&gt;ここで一旦buildしておきます。←ここ重要。&lt;BR&gt;&lt;BR&gt;さて、フォームにDataGridViewひとつとButtonをふたつ、&lt;BR&gt;そしてBindingSourceをひとつ貼り付けます。&lt;BR&gt;んでもって BindingSourceのDataSourceプロパティを WankumaProgrammer に設定。&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://episteme.wankuma.com/image/bindingsource_property.JPG"&gt;&lt;BR&gt;&lt;BR&gt;ほんでもって DataGridViewのBindingSourceプロパティをBindingSource1にセットすると&lt;BR&gt;&lt;IMG src="http://episteme.wankuma.com/image/databinding_form.JPG"&gt;&lt;BR&gt;&lt;BR&gt;あらフシギ、DataGridViewにWankumaProgrammerのプロパティが現れます。&lt;BR&gt;BindingList(Of WankumaProgrammer) をForm1のフィールド(メンバ変数)に加え、&lt;BR&gt;FormのLoadイベント および Button1,Button2のClickイベントをちゃっちゃと書きましょう:&lt;BR&gt;&lt;BR&gt;
&lt;TABLE border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT size=2 face="Courier New"&gt;Imports System.ComponentModel&lt;/FONT&gt; 
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;Public Class Form1&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private _wankumaProgrammers As New BindingList(Of WankumaProgrammer)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;BindingSource1.DataSource = _wankumaProgrammers&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _wankumaProgrammers.Add(New WankumaProgrammer("ぽぴ王子", "C#"))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _wankumaProgrammers.Add(New WankumaProgrammer("とりこびと", "VB"))&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff&gt; MessageBox.Show(_wankumaProgrammers.Count.ToString())&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;_wankumaProgrammers.Add(New WankumaProgrammer("επιστημη", "C++"))&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;End Class&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;実行。DataGridViewに"ぽぴ王子"と"とりこびと"が現れましたか?&lt;BR&gt;Button2を押すと"επιστημη"が追加されますし、DataGridViewに直接書き加えることもできます。&lt;BR&gt;たまぁにButton1を押してやってくださいな。_wankumaProgrammersに内包された要素の数が確認できます。&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/aggbug/172658.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>.NET言語相互変換計画</title><link>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2009/05/07/172522.aspx</link><pubDate>Thu, 07 May 2009 16:01:00 GMT</pubDate><guid>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2009/05/07/172522.aspx</guid><wfw:comment>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/172522.aspx</wfw:comment><comments>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2009/05/07/172522.aspx#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/commentRss/172522.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/services/trackbacks/172522.aspx</trackback:ping><description>&lt;P&gt;わんくまの連中を巻き込んで C#, VB.NET, C++/CLI それぞれの&lt;BR&gt;文法とか構文とかを併記したサイトなりリファレンスを作りたいなー&lt;BR&gt;っていう思いがあります。 &lt;BR&gt;&lt;BR&gt;せっかく 豊富なサンプルがあるのに「C#わかんねーよ」とか&lt;BR&gt;「VBはちょっと...」とかそんなのもったいないじゃない。&lt;BR&gt;それぞれの変換規則がわかってりゃ、それぞれのサンプルコード&lt;BR&gt;が読めるじゃない。&lt;BR&gt;&lt;BR&gt;ずいぶん前に「やろーぜ!」って旗揚げしたんだけど、&lt;BR&gt;なかなか手がつけられなくて腐ってました。&lt;BR&gt;&lt;BR&gt;腕試しがてらVBで書かれたひとつのサンプルを&lt;BR&gt;C#とC++/CLIにportするココロミを始めました。&lt;BR&gt;&lt;BR&gt;お題に僕が選んだのは とりこびと先生 の秀作&lt;BR&gt;「データバインディングのおべんきょ。」シリーズ。&lt;BR&gt;&lt;BR&gt;&lt;A href="http://blogs.wankuma.com/torikobito/archive/2007/05/29/78651.aspx"&gt;その１&lt;/A&gt; &lt;A href="http://blogs.wankuma.com/torikobito/archive/2007/05/29/78677.aspx"&gt;その２&lt;/A&gt; &lt;A href="http://blogs.wankuma.com/torikobito/archive/2007/05/29/78684.aspx"&gt;その３&lt;/A&gt; &lt;A href="http://blogs.wankuma.com/torikobito/archive/2007/05/30/78759.aspx"&gt;その４&lt;/A&gt; &lt;A href="http://blogs.wankuma.com/torikobito/archive/2007/05/30/78804.aspx"&gt;その５&lt;/A&gt; &lt;A href="http://blogs.wankuma.com/torikobito/archive/2007/05/30/78833.aspx"&gt;その６&lt;/A&gt; &lt;A href="http://blogs.wankuma.com/torikobito/archive/2007/05/30/78855.aspx"&gt;その７&lt;/A&gt; &lt;A href="http://blogs.wankuma.com/torikobito/archive/2007/05/31/78890.aspx"&gt;その８&lt;/A&gt; &lt;BR&gt;&lt;A href="http://blogs.wankuma.com/torikobito/archive/2007/06/01/79046.aspx"&gt;その９&lt;/A&gt; &lt;A href="http://blogs.wankuma.com/torikobito/archive/2007/06/01/79084.aspx"&gt;その１０&lt;/A&gt; &lt;A href="http://blogs.wankuma.com/torikobito/archive/2007/06/04/79321.aspx"&gt;その１１&lt;/A&gt; &lt;A href="http://blogs.wankuma.com/torikobito/archive/2007/06/04/79380.aspx"&gt;その１２&lt;/A&gt; &lt;A href="http://blogs.wankuma.com/torikobito/archive/2007/06/06/79670.aspx"&gt;その１３&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;ここにあるVBコードを片っ端からC#, C++/CLIにportしてます。&lt;BR&gt;Visual Studio 2008 - solution の形式でお披露目の予定。&lt;BR&gt;# ﾃｷﾄｰに溜まったら公開するねー♪&lt;BR&gt;&lt;BR&gt;...で、ちょいとご意見伺いなんだが、&lt;BR&gt;「わんくまの誰かが書いたコレを他言語にportしてくれぃ」&lt;BR&gt;ってーリクエストありませんか?&lt;BR&gt;また、「portやっちゃるぜぃ!」ってボランティアはいらっしゃいませんか?&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/aggbug/172522.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>車輪の再発明</title><link>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2009/04/13/171287.aspx</link><pubDate>Mon, 13 Apr 2009 01:42:00 GMT</pubDate><guid>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2009/04/13/171287.aspx</guid><wfw:comment>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/171287.aspx</wfw:comment><comments>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2009/04/13/171287.aspx#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/commentRss/171287.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/services/trackbacks/171287.aspx</trackback:ping><description>&lt;P&gt;やりますよ。ええ、やっちゃいます。&lt;BR&gt;&lt;BR&gt; &lt;STRONG&gt;ModelとViewの分離&lt;/STRONG&gt;のためにModelからViewにイベント飛ばすわけです。 &lt;BR&gt;Model側に用意したeventに View側のdelegateをアタッチするのね。&lt;BR&gt; ModelとViewのライフタイムが一致してれば問題ないんだけど、&lt;BR&gt;たとえばViewがダイアログだったりするとModelより先にViewが&lt;BR&gt;&lt;STRONG&gt;お亡くなり&lt;/STRONG&gt;になります。 &lt;/P&gt;
&lt;P&gt;このとき、Viewがこの世を去るにあたってdelegateをちゃんと&lt;BR&gt;デタッチしておかないと、ModelがViewを掴んだままになるます。&lt;BR&gt;ダイアログは消えてるのにイベントに反応しちゃうです。&lt;BR&gt;&lt;STRONG&gt;声はすれども姿は見えず、ほんにおまえは屁のような。&lt;/STRONG&gt;と。 &lt;/P&gt;
&lt;P&gt;デタッチせずにお構いなしにこの世を去らせたく、&lt;BR&gt;&lt;STRONG&gt;弱参照&lt;/STRONG&gt;をアタッチできんもんかとこねくりまわしてました。&lt;/P&gt;
&lt;P&gt;それが車輪の再発明。WeakEventManagerゆーもんがあったです。&lt;BR&gt;おかげさまでそれまでの丸一日を&lt;STRONG&gt;ふっ飛ばして&lt;/STRONG&gt;くれやがりました。&lt;BR&gt; まぁ無理もない話で、そもそもWeakEventManagerてぇ代物は &lt;BR&gt;&lt;STRONG&gt;WPF絡み&lt;/STRONG&gt;のものだったもんだから、僕が釣り糸垂れてた川には&lt;BR&gt;棲んでなかったのよねー orz &lt;/P&gt;
&lt;P&gt;車輪の再発明はがっかりさんしょんぼりさんではありますが、&lt;BR&gt;&lt;STRONG&gt;芸の肥し&lt;/STRONG&gt;になんだから善しとしましょう。 &lt;BR&gt;&lt;BR&gt;そんなこんなで WeakEventManager を使って Windows.Forms で&lt;BR&gt;こさえたViewを弱参照させるココロミちうなう。 &lt;/P&gt;
&lt;P&gt;&lt;FONT color=#808080&gt;＜そこで質問＞ &lt;BR&gt;System.Type hoge があり、&lt;/FONT&gt;&lt;FONT color=#808080&gt;&lt;STRONG&gt;このhogeが示すクラスが &lt;BR&gt;Foo あるいは Foo の派生であるか&lt;/STRONG&gt;を調べにゃならんのです。 &lt;BR&gt;&lt;FONT size=2 face="Courier New"&gt;If hoge.Equals(GetType(Foo)) Then&lt;/FONT&gt; &lt;BR&gt;だと Foo であるか否かはわかるけど、Foo の派生かはわかんない。 &lt;BR&gt;&lt;FONT size=2 face="Courier New"&gt;If hoge.IsSubclassOf(GetType(Foo)) Then&lt;/FONT&gt; &lt;BR&gt;だと Foo の派生であるかはわかるけど、Foo であるかはわかんない。 &lt;BR&gt;&lt;FONT size=2 face="Courier New"&gt;If hoge.Equals(GetType(Foo)) OrElse hoge.IsSubclassOf(GetType(Foo)) Then&lt;/FONT&gt; &lt;BR&gt;すりゃいいんだけどかったるいので、&lt;BR&gt;これを&lt;STRONG&gt;イッパツで判断&lt;/STRONG&gt;できんもんでしょか。&lt;BR&gt;＜/そこで質問＞ &lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/aggbug/171287.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>こ、このわからずやっ</title><link>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2009/04/01/170554.aspx</link><pubDate>Wed, 01 Apr 2009 09:05:00 GMT</pubDate><guid>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2009/04/01/170554.aspx</guid><wfw:comment>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/170554.aspx</wfw:comment><comments>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2009/04/01/170554.aspx#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/commentRss/170554.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/services/trackbacks/170554.aspx</trackback:ping><description>&lt;P&gt;int と string の組を要素とする List が必要になりました。&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;using System;&lt;BR&gt;using System.Collections.Generic;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;class &lt;FONT color=#0000ff&gt;PairList&amp;lt;K,V&amp;gt;&lt;/FONT&gt; : List&amp;lt;KeyValuePair&amp;lt;K,V&amp;gt;&amp;gt; {&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;PairList&amp;lt;int,string&amp;gt; に要素を Add します。&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var pl = new PairList&amp;lt;int,string&amp;gt;();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pl.Add(&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;new KeyValuePair&amp;lt;int,string&amp;gt;&lt;/FONT&gt;&lt;/STRONG&gt;(0,"zero"));　&lt;FONT color=#008000&gt;// ﾀﾘｰ&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;...ﾐｮｰに&lt;STRONG&gt;長ったらしい&lt;/STRONG&gt;ですよねぇ。そこでメソッドを追加します&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;class PairList&amp;lt;K,V&amp;gt; : List&amp;lt;KeyValuePair&amp;lt;K,V&amp;gt;&amp;gt; {&lt;BR&gt;&lt;STRONG&gt;&amp;nbsp; public static KeyValuePair&amp;lt;K,V&amp;gt; &lt;FONT color=#0000ff&gt;MakePair&lt;/FONT&gt;(K key, V value) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new KeyValuePair&amp;lt;K,V&amp;gt;(key,value);&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&lt;/STRONG&gt;}&lt;BR&gt;...&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pl.Add(&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;PairList&amp;lt;int,string&amp;gt;.MakePair&lt;/FONT&gt;&lt;/STRONG&gt;(0,"zero"));&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;ダメぢゃん。&lt;STRONG&gt;余計に長く&lt;/STRONG&gt;なっちまったぢゃん。&lt;BR&gt;ならば、ってんで MakePair の static をとっぱらいます:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;class PairList&amp;lt;K,V&amp;gt; : List&amp;lt;KeyValuePair&amp;lt;K,V&amp;gt;&amp;gt; {&lt;BR&gt;&lt;STRONG&gt;&amp;nbsp; public KeyValuePair&amp;lt;K,V&amp;gt; MakePair(K key, V value) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new KeyValuePair&amp;lt;K,V&amp;gt;(key,value);&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&lt;/STRONG&gt;}&lt;BR&gt;...&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pl.Add(&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;pl.MakePair&lt;/FONT&gt;&lt;/STRONG&gt;(0,"zero"));&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;おぉ、涼しいですねぇ。&lt;BR&gt;ところがこれでコード分析かけると&lt;BR&gt;　　&lt;FONT size=4&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;「thisの参照してないんだからstaticにしやがれ!」&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;って怒られます。&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#008000 size=5&gt;&lt;STRONG&gt;どないせっちゅーねん!&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;※ C++だとstaticメソッドをインスタンスを介して呼べるのに、.NETはそれを許さんのよねー...&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/aggbug/170554.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>