2010-06-27 40 views
2

我只是想知道這是否可能;如何在C#中執行非複雜的腳本。 基本上,假設我有一個結構,例如:C#中的腳本 - 適用於XNA和360的便攜式庫?

Structure 
    int a 
    int b 
    int c 

    Function ParseValue(pString as String) 

     try 
       return interpret(pString) 
     catch 
      return 0 
     end try 

    End Function 

ParseValue會在那裏,我的問題所在,特別是「解釋」。 「解釋」只是我尋找的代碼/實現的通用佔位符。

比方說,我將pString的值傳遞爲'a + b + c'。因此,代碼會將字符串解釋爲「將a + b + c的值返回」。如果我不能這樣做,「返回0」。必須返回0的一個很好的例子是「(a + b)/ c」,並且c = 0的值(不能被零除)。

是否有可能做到這一點?我知道很久以前,我能夠使用Microsoft Scripting Control在VB6中實現類似的功能,但是。這是12年前,而不是C#/ XNA/360兼容。我認爲:P

編輯:可以解釋的語言並不重要。如果我可以使用VB.Net或C#並在其中解釋VBSCript或JScript,我對此感到滿意。

回答

0

我不知道一個特定的腳本庫可用於.Net精簡版框架(即:一個可以在360上工作的)。你可能能找到一個,我只是沒有看過。我見過用C#編寫的Lua解釋器,但我不確定它是否適用於Compact Framework。 (並且我不記得我在哪裏找到它)

但是,您可以在在360上動態加載預編譯程序集(在Windows上您也可以動態編譯它們,但是360是隻能夠加載它們),這將允許您使用任何.Net語言作爲您的'腳本'語言。那麼問題在於,你通過使用腳本語言獲得了什麼?您可以在不重新啓動遊戲的情況下更改腳本,但仍然需要經過編譯過程,調試變得更加困難。考慮到C#的快速編譯速度,我認爲如果你的遊戲沒有腳本語言,你可能會更好。