在IronPython中运行C#方法的参数混乱

时间:2013-05-01 18:08:20

标签: c# ironpython

我正在尝试在IronPython(2.7.3)控制台中运行c#方法:

c#(编译为dll)是:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PythonTest
{
    public class PythonTest
    {
        public PythonTest(){}
        public int GetOne()
        {
            return 1;
        }
        public double Sum(double d1, double d2)
        {
            return d1+d2;
        }
        public string HiPlanet()
        {
            return "Hi Planeta";
        }
    }
}

python是

import sys
sys.path.append("Y:\\")
import clr
clr.AddReferenceToFile('./PythonTest')
import PythonTest

a = PythonTest.PythonTest.GetOne()

我在ironpython中得到一个TypeError,说该函数需要一个争论(它不符合我的c#!)。我很困惑,并且在这里提供帮助,我只是想调用一些c#函数提供争论并获得结果,提前感谢!

1 个答案:

答案 0 :(得分:1)

由于它是一个实例方法,因此需要在调用GetOne方法之前实例化该对象:

obj = PythonTest.PythonTest()
a = obj.GetOne()

或者,在单行中:

a = PythonTest.PythonTest().GetOne()