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.