0

到目前为止,这是我所做的,我不确定它是否有效,但是,尝试一些东西总比什么都不做要好。我在我的 Winform 项目中添加了一个 Ruby 类,它看起来像这样:

    class My_Ruby_Class
        def initialize(number)
            @number = number
            change_number()
        end

        def change_number
            @number*= 2
        end

        def get_number
            return @number
        end
    end

所以稍后在我的 c# MainForm.cs 中输入:

namespace ruby_in_dotNet_test_01
{

    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();

            int number = 2;

            My_Ruby_Class test = new My_Ruby_Class(number);

            int number2 = test.get_number();

        }
    }
}

非常有趣的是,智能感知似乎可以检测到我的 ruby​​ 类,甚至可以帮助我在输入时填充区域,所以在我看来,我走在正确的道路上。但是它不编译。编译器错误似乎与缺少类型或命名空间有关。我试图在“模块 ruby​​_in_dotNet_test_01”块之间包围我的 ruby​​ 类,但没有成功。

我很困惑,也许只有一个小细节我做得不好,或者这种方法根本不起作用?

4

2 回答 2

3

基本上你正在尝试做的事情不会开箱即用(在文件中定义 ruby​​ 代码并直接从 C# 使用它,并且仍然可以获得强类型和 Intellisense)。您是否忘记了 Ruby 是一种弱类型语言?

您可以使用 IronRuby 从 C# 调用 ruby​​ 代码。这是一个step-by-step article说明过程。这是一个screencast你可以看的。

于 2013-01-15T21:46:44.720 回答
0

除了 Darin Dimitrov 写的另一个答案之外,我刚刚找到了这篇分步文章,它以非常友好的方式解释了如何从 C# 调用 ruby​​ 代码。

于 2013-01-16T23:29:12.910 回答