C#のコードを参考にしてみよう

 .NET Frameworkを使って一番書かれているプログラム言語はC#です。なので、Iron Pythonで.NET Franeworを使う時はC#のコードを参考にすると、楽に書けます。

 古典です。Hello World!

 C#を使って、DOSプロンプトに"Hello World!"と表示させるには次のようになります。

// Hello.cs
public class Hello
{
  public static void Main()
  {
    System.Console.WriteLine("Hello, World!");
  }
}


 私もあんまりC#は使わないのですが、なんとなくSystem.ConsoleモジュールにあるWriteLine関数を使えばいいんだなってわかりますね。
Iron Pythonで使うと次のようになります。

#coding: shift-jis

import System.Console

System.Console.WriteLine("Hello, World!")

raw_input()

出力画面:
 Hello, World!
最後の行はほとんどコピペです。(笑)

 Windowを使ったHello World!

 さっきのが簡単過ぎたのでもうちょっと難しいのを・・・。C#のコードです。

//Hello2.cs
using System;
using System.Drawing;
using System.Windows.Forms;

class MyForm : Form
{
  Label Label1;

  public MyForm()
  {
    Label1 = new Label();
    Label1.Text = "Hello World!";
    Label1.Location = new Point(30,30);

    this.Text = "Hello World";
    this.StartPosition = FormStartPosition.CenterScreen;

    this.Controls.Add(Label1);
  }

  public static void Main()
  {
    Application.Run(new MyForm());
  }
}

 これをIron Pythonを使って書くと次のようになります。

#coding: shift-jis

import clr
clr.AddReference('System.Drawing')
clr.AddReference('System.Windows.Forms')

from System import *
from System.Drawing import *
from System.Windows.Forms import *

class MyForm(Form):
  def __init__(self):
    self.Label1 = Label()
    self.Label1.Text = "Hello World!"
    self.Label1.Location = Point(30,30)

    self.Text = "Hello World"
    self.StartPosition = FormStartPosition.CenterScreen

    self.Controls.Add(self.Label1)

if __name__ == "__main__":
  Application.Run(MyForm())

 C#を知っている人にはわかると思います。C#を勉強したことがない人はごめんなさい。でもC#で書いたものとIron Pythonで書いたものがすごく似ていると感じてもらえると思います。次のようなWindowが表示されれば成功です。

HellpWorld縺ィ陦ィ遉コ

WindowをCloseするとプログラム終了です。

 これからは今回のようにC#と比較しながらという説明はしませんが、C#の書籍で.NET Frameworkの勉強をすれば、すぐIron Pythonでも応用できることがわかってもらえると思います。