「NeoLuaのインストールとハローワールド」の版間の差分

imported>Administrator
ページの作成:「== インストール == * NuGetからNeoLuaを入れろ。 * 参照に「Microsoft.CSharp」を追加しろ。  ← これ重要(ダイナミック版を...」
 
編集の要約なし
 
13行目: 13行目:
「clr」で標準の名前空間にもアクセスできる。
「clr」で標準の名前空間にもアクセスできる。
<source lang="csharp">
<source lang="csharp">
            using (var lua = new Lua())
using (var lua = new Lua())
            {
{
                dynamic g = lua.CreateEnvironment();
    dynamic g = lua.CreateEnvironment();
                g.dochunk(@"
    g.dochunk(@"
                    s = 'hello world';
        s = 'hello world';
                    clr.System.Console.WriteLine(s);
        clr.System.Console.WriteLine(s);
                ");
    ");
            }
}
</source>
</source>


27行目: 27行目:
ついでにまったく関係ないことだがLuaでの文字列連結は「..」だ。
ついでにまったく関係ないことだがLuaでの文字列連結は「..」だ。
<source lang="csharp">
<source lang="csharp">
            using (var lua = new Lua())
using (var lua = new Lua())
            {
{
                var env = lua.CreateEnvironment();
    var env = lua.CreateEnvironment();
                env.DoChunk(@"
    env.DoChunk(@"
                    name = 'foo';
        name = 'foo';
                    function Hello()
        function Hello()
                        return 'hello ' .. name;
            return 'hello ' .. name;
                    end
        end
                ","test.lua");
    ","test.lua");


                var ret1 = env.CallMember("Hello");
    var ret1 = env.CallMember("Hello");
                Console.WriteLine(ret1.ToString());
    Console.WriteLine(ret1.ToString());


                env.SetMemberValue("name", "bar");
    env.SetMemberValue("name", "bar");
                var ret2 = env.CallMember("Hello");
    var ret2 = env.CallMember("Hello");
                Console.WriteLine(ret2.ToString());
    Console.WriteLine(ret2.ToString());
            }
}
</source>
</source>


[[category: NeoLua]]
[[category: NeoLua]]