IronPythonで.NETなVBやC#のコードを動かす時には、だいたいそのまま書き換える事ができます。 注意しておくのは次のような事でしょうか。
C#のサンプルをみていると、trueとfalseが出てきますが、IronPythonではVisualBasicと同様にTrue、Falseが使えます。
MSDNの.NET APIリファレンスにあるコード例では引数にイベントハンドラを指定していますが、その部分の引数は省いて、次の行で.Clickプロパティにメソッドへのリファレンスを追加しています。
オリジナルのVisualBasicコード抜粋
...
Dim windowNewMenu As New ToolStripMenuItem("New", Nothing,
New EventHandler(AddressOf windowNewMenu_Click))
...
変更後
...
windowNewMenu = ToolStripMenuItem("New", None)
windowNewMenu.Click += windowNewMenu_onclick
...
ただしToolStripMenuItemクラスのコンストラクタは0〜3つの引数を取ります。
無理にNoneを渡さなくともToolStripMenuItem("New")で十分です。
いくつかの実現方法があるようですが、まったく同じ値を取り出す方法としてSystem.IntPtr.Zeroを使う方法が以前からあるようです。
先ほどのSystem.Windwos.Forms.ToolStripItemクラスのコード例には、VisualBasicでNothing、C#でnullを渡しています。
IronPythonで試したところNoneで期待通りの動きをしています。
もしAPIで明示的にIntPtr型のnull値を渡す必要がある場合には、System.IntPtr.Zeroが使えるはずですが、評価した場合にIntPtrを想定していない場合にどんな動きをするのかわからないので、まずはNoneを試すのが良さそうです。
Created: 2010-03-11, Last modified: 2010-03-19
www.yasundial.org by
Yasuhiro ABE
is licensed under a Creative Commons Attribution 2.1 Japan License.
Permissions beyond the scope of this license may be available at http://www.yasundial.org/info/license.html.