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 クラスを「module ruby​​_in_dotNet_test_01」ブロックで囲おうとしましたが、成功しませんでした。

私は混乱しています。おそらく、私が適切に行っていない細部が1つだけあるのでしょうか、それともこのアプローチはまったく機能しないのでしょうか?

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 に答える