我有一個IronRuby腳本,通過ScriptScope
修改變量集的值。檢索修改的變量值
我想檢索它被修改後的變量的值,但我得到舊值。
這是我的代碼:
var engine = Ruby.CreateEngine();
var scope = engine.Runtime.CreateScope();
scope.SetVariable("y", 11);
var source = engine.CreateScriptSourceFromString("y=33; puts y;", SourceCodeKind.Statements);
source.Execute(scope);
上面的代碼執行,並輸出33
到控制檯,這是確定。
然而,我試圖上面的代碼後添加下列行:
Console.WriteLine(scope.GetVariable("y"));
並輸出11
,其是該原始值。
有沒有辦法獲得新的變量值?
我已經測試過您的解決方案,它的工作原理。這必須是因爲引用類型和值類型之間的區別,儘管我也希望原始類型在這種情況下也能正常工作。你提出的解決方法在我的情況下是可以接受的,所以我會接受它作爲答案。感謝和+1! – GolfWolf
確實,這是因爲對象是傳遞參考。但我不知道我們是否可以在ref中傳遞數據類型基礎! – Hyralex