「NeoLua」の版間の差分
imported>Administrator |
imported>Administrator |
||
| 14行目: | 14行目: | ||
=== インストール === | === インストール === | ||
* [[NuGet]]からNeoLuaを入れろ。 | * [[NuGet]]からNeoLuaを入れろ。 | ||
* 参照に「Microsoft.CSharp」を追加しろ。 | * 参照に「Microsoft.CSharp」を追加しろ。 ← これ重要(ダイナミック版を使う場合のみ必須) | ||
=== ハロワ === | === ハロワ === | ||
まずは定番の[[ハロワ]] | まずは定番の[[ハロワ]]。NeoLuaには2種類の実行環境がある。頭の固い人向けの静的版と、ユルユルな人向けのダイナミック版である。CreateEnvironmentメソッドの戻り値の型を、「var」(型推論)にすると静的版に、「dynamic」にするとダイナミック版になる。ダイナミック版は[[インテリセンス]]が効かない諸刃の剣であるが、ある程度慣れると圧倒的にこちらの方が便利かつ簡潔明瞭である。ちなみにダイナミック版のdochunkは小文字だぞ。 | ||
こういう書き方もできる。 | こういう書き方もできる。 | ||
| 79行目: | 79行目: | ||
} | } | ||
</source> | </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> | |||
== 外部リンク == | == 外部リンク == | ||