Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
70 lines (54 loc) · 2.95 KB

File metadata and controls

70 lines (54 loc) · 2.95 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// See https://aka.ms/new-console-template for more information
using DynamicScriptTest;
using Microsoft.CodeAnalysis.CSharp.Scripting;
using Microsoft.CodeAnalysis.Scripting;
Console.Write("测试基本算数表达式:(1+2)*3/4");
var res = await CSharpScript.EvaluateAsync("(1+2)*3/4");
Console.WriteLine(res);
Console.WriteLine("测试Math函数:Sqrt(2)");
res = await CSharpScript.EvaluateAsync("Sqrt(2)", ScriptOptions.Default.WithImports("System.Math"));
Console.WriteLine(res);
Console.WriteLine(@"测试字符串函数:""Hello"".Length");
res = await CSharpScript.EvaluateAsync(@"""Hello"".Length");
Console.WriteLine(res);
Console.WriteLine(@"测试输入输出函数:Directory.GetCurrentDirectory()");
res = await CSharpScript.EvaluateAsync("Directory.GetCurrentDirectory()",
ScriptOptions.Default.WithImports("System.IO"));
Console.WriteLine(res);
Console.WriteLine(@"测试变量:");
var student = new Student { Height = 1.75M, Weight = 75 };
//student.BMI=await CSharpScript.EvaluateAsync<Decimal>("Weight/Height/Height", globals: student);
await CSharpScript.RunAsync("BMI=Weight/Height/Height", globals: student);
Console.WriteLine(student.BMI);
Console.WriteLine(@"测试脚本编译复用:");
var scriptBMI = CSharpScript.Create<Decimal>("Weight/Height/Height", globalsType: typeof(Student));
scriptBMI.Compile();
Console.WriteLine((await scriptBMI.RunAsync(new Student { Height = 1.72M, Weight = 65 })).ReturnValue);
Console.WriteLine(@"测试脚本中定义函数:");
string script1 = "decimal Bmi(decimal w,decimal h) { return w/h/h; } return Bmi(Weight,Height);";
var result = await CSharpScript.EvaluateAsync<decimal>(script1, globals: student);
Console.WriteLine(result);
Console.WriteLine(@"测试脚本中的变量:");
var script = CSharpScript.Create("int x=1;");
script = script.ContinueWith("int y=1;");
script = script.ContinueWith("return x+y;");
Console.WriteLine((await script.RunAsync()).ReturnValue);
Console.WriteLine(@"测试脚本中的变量var:");
var script2 = CSharpScript.Create("var x=1;");
script2 = script2.ContinueWith("var y=1.5;");
script2 = script2.ContinueWith("return x+y;");
Console.WriteLine((await script2.RunAsync()).ReturnValue);
Console.WriteLine(@"测试脚本中的变量数组:");
var script3 = CSharpScript.Create("int[] x = new int[7] { 1, 2, 3, 4, 5, 6, 7 }; ");
script3 = script3.ContinueWith("int y=0;");
script3 = script3.ContinueWith("for(var i=0;i<7;i++) y+=x[i] ;");
script3 = script3.ContinueWith("return y;");
Console.WriteLine((await script3.RunAsync()).ReturnValue);
Console.WriteLine(@"文件读入脚本:");
var s4 = CSharpScript.Create(File.ReadAllText("script.txt"));
Console.WriteLine((await s4.RunAsync()).ReturnValue);
Console.WriteLine(@"测试类:");
var script4 = CSharpScript.Create("public class Person { public string Name; } ");
script4 = script4.ContinueWith(@"var p=new Person{Name=""张三""}; ");
script4 = script4.ContinueWith("return p.Name;");
Console.WriteLine((await script4.RunAsync()).ReturnValue);
Morty Proxy This is a proxified and sanitized view of the page, visit original site.