아래의 C# 소스는 Visual Studio 2010의 명령프롬프트를 영어서 컴파일하고. IronPython 소스는 병도의 명령창을 열어서 IronPuthon 이 설치된 폴더의 경로와 csgufudan.dll 파일이 있는 퐁더의 경로를 명령창의 환경변수 PATH에 잡아주고, IronPython의 ipy 명령으로 실행합니다,

 

* C# 소스

// Filename: csgugudan.cs
//         a library for IronPython
//
// Compile: csc /debug+ /target:library csgugudan.cs
// Execute: ipy callGugudan.py

using System;
using System.Collections;

public class Gugudan : IEnumerable {

    private int dan;
    private int last;

    public Gugudan(int dan, int last) {
        this.dan = dan;
        this.last = last;
    }

    public override string ToString() {
       return string.Format("Gugudan: {0,2} x {1,2} = {2,3}", dan, last, dan*last);
    }

    public IEnumerator GetEnumerator() {
        for (int i = 1; i <= last; i++) {
            yield return new Gugudan(dan, i);
        }
    }
}

 

* IronPython 소스

# Filename: callGugudan.py
#      Load a dll library created by C#
#
# Execute: ipy callGugudan.py

import clr
clr.AddReferenceToFile("csgugudan.dll")
import Gugudan
g = Gugudan(19, 10)
for i in g: print i

 

* 다음은 실행 결과입니다.

Gugudan: 19 x  1 =  19
Gugudan: 19 x  2 =  38
Gugudan: 19 x  3 =  57
Gugudan: 19 x  4 =  76
Gugudan: 19 x  5 =  95
Gugudan: 19 x  6 = 114
Gugudan: 19 x  7 = 133
Gugudan: 19 x  8 = 152
Gugudan: 19 x  9 = 171
Gugudan: 19 x 10 = 190

 

 

Posted by Scripter
,