スキップしてメイン コンテンツに移動

C# で Lua を使用する

C# で Lua を使用する

概要

NLua というライブラリを使用して C# で Lua を使用する。
C++ でいう LuaPlus みたいに簡単に組み込める、すごい。
プロジェクト一式はこちらからどうぞ -> download
図
コンソール

ソースコード

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

namespace CSharp_Lua_test
{
 class CSharpLuaTest
 {
  // Lua から呼ばれる関数
  public string Func1(int x)
  {
   return ("CSharp function : " + x);
  }


  // C# で Lua を使ってみる
  // https://github.com/NLua/NLua を使用
  static void Main(string[] args)
  {
   NLua.Lua state = new NLua.Lua();
   // C# の関数を Lua 側から呼べるようにする。
   state["CS"] = new CSharpLuaTest();

   state.DoString(@"
    -- 大きい方を返す関数
    function GetBig(x, y)
     if x > y then
      return x
     else
      return y
     end
    end


    -- Lua の文字列連結演算子は「..」
    test = 'Hello Lua World !' .. ' hoge fuga '
    test = test .. 'HAAA'

    -- せっかくだし計算してみよう
    tmp = 10 * 3 + 6 - 5;

    -- C# 側の関数を呼ぶ
    tmpRet = CS:Func1(GetBig(100, 20))
   ");

   System.Console.WriteLine("test = " + state.GetString("test"));
   System.Console.WriteLine("tmp  = " + state.GetString("tmp"));
   System.Console.WriteLine("tempRet = " + state.GetString("tmpRet"));
   System.Console.WriteLine("[Please Enter key.]");
   System.Console.ReadLine();
   state.Close();
   return;
  }
 }
}

コンソール

test = Hello Lua World ! hoge fuga HAAA
tmp  = 31
tempRet = CSharp function : 100
[Please Enter key.]
以上

このブログの人気の投稿

node.js で SQLite を async を使用して同期的に使用する

node.js で SQLite を async を使用して同期的に使用する node.js で SQLite を使うと何が怖いって非同期処理って所。
どのようにコードが動くのか分かり辛い。

そこで同期処理っぽくしてみたい。


async というライブラリを使用するとそれっぽいことができるそうなのでサンプルを書いた。

記述試験の書き方(仮)

記述試験の書き方(仮) 1,まえがき   法学部の試験では記述式の試験が出てくる。   その試験では、あるテーマについて自由に論ぜよとされている。 しかし、論ぜよと言われても、どのように論じればいいのか、すなわち、記述の仕方について教わったことがない(よくよく考えると、法的文章力を習得させる事だけが目的の授業はないと思われる)。   本稿では、私自身が法学畜になり、見聞きし、実際に活用している論述方法についてまとめている、はずである。その要点は、①条文、判例、学説を使う。②単なる事実と法的事実を区別する。③文章内に一貫性を持たせる。である。