差分

ナビゲーションに移動 検索に移動

NeoLua

890 バイト追加, 2018年8月15日 (水) 10:19
=== インストール ===
* [[NuGet]]からNeoLuaを入れろ。
* 参照に「Microsoft.CSharp」を追加しろ。  ← これ重要← これ重要(ダイナミック版を使う場合のみ必須)
=== ハロワ ===
まずは定番の[[ハロワ]]。NeoLuaには2種類の実行環境がある。頭の固い人向けの静的版と、ユルユルな人向けのdynamic版である。CreateEnvironmentメソッドの戻り値の型を、「var」(型推論)にすると静的版に、「dynamic」にするとdynamic版になる。dynamic版は。NeoLuaには2種類の実行環境がある。頭の固い人向けの静的版と、ユルユルな人向けのダイナミック版である。CreateEnvironmentメソッドの戻り値の型を、「var」(型推論)にすると静的版に、「dynamic」にするとダイナミック版になる。ダイナミック版は[[インテリセンス]]が効かない諸刃の剣であるが、ある程度慣れると圧倒的にこちらの方が便利かつ簡潔明瞭である。ちなみにdynamic版のdochunkは小文字だぞ。が効かない諸刃の剣であるが、ある程度慣れると圧倒的にこちらの方が便利かつ簡潔明瞭である。ちなみにダイナミック版のdochunkは小文字だぞ。
こういう書き方もできる。
}
</source>
 
=== C#でクラスを追加する ===
前述のC#で関数を追加する方法と同じ要領でクラスも追加できる。<syntaxhighlight lang="csharp">
class MainClass
{
public static void Main(string[] args)
{
using (var lua = new Lua())
{
var env = lua.CreateEnvironment();
 
// C#で書かれたfooオブジェクトを追加
env.Add("foo", new Foo());
 
// Lua側から呼び出してみる
var ret = env.DoChunk(@"return foo:ticks()", "main.lua");
Console.WriteLine(ret);
}
}
}
 
class Foo
{
public long ticks()
{
return DateTime.Now.Ticks;
}
}
</syntaxhighlight>
== 外部リンク ==
匿名利用者

案内メニュー