読者です 読者をやめる 読者になる 読者になる

”Ironpython in Action” ch.3 -.Net objects and Ironpython- まとめ

Programming Ironpython

トラバもらったりして思い出したので。
実は、結構読み進めてありました(ぁ

  • MSDN documentationを有効利用しましょうというお話。
    • Pythonerの方は、.Netの仕様なんて知らないでしょうから、この辺を随時、参照して活用して下さい。
public override string Text { get; set; }
    • Ironpythonでも、以下のように入力し実行すれば、Titleが"Hello, World"なフォームを生成できます。
import clr
clr.AddReference("System.Windows.Forms")
from System.Windows.Forms import Application, Form

form = Form()
form.Text = "Hello, World"
Application.Run(form)
    • ちなみに、より"Pythonic"な書き方として以下のような書き方があります。
form = Form(Text = "Hello, World")
    • つまり、コンストラクタで、キーワード引数を使うことによりプロパティを設定できるわけです。
    • Controlクラス
      • Formにコントロールを追加して行きましょう。
      • Ironpython Studioを使えば、Visual Studio上でRADを使ったGUI環境での開発が可能です。
      • Colletionも基本的に、Pythonのリストや辞書のように使えます。
      • しかし、例えば以下のようなことをすると、TypeErrorが返ってきます。
form.Controls.AddRange([Lable()])

>Output
Traceback (most recent call last) :
TypeError : expected Array, got list

      • このような場合、必要に応じてリストを.NetのArrayに変換する必要があります
      • ちなみに、構造体や列挙体も問題なく使えるよ!
form = Form()
def onMouseMove(sender, event) : //Event handler
  print event.X, event.Y

form.MouseMove += onMouseMove
      • C#では、MouseEventHandler(onMousemove)とかしなきゃいけなかったけど、こっちの方が簡単ですね。
    • まとめ
      • 一般に、型は以下の7つぐらいに大別されます。
        • 組み込み型
        • ポインタ
        • クラス
        • 構造体
        • インターフェース
        • 列挙体
        • デリゲート
      • Ironpythonでは、ポインタ以外は(注意しなければいけない点はあるにしろ).Netと同じように使えます。