发文章
发文工具
撰写
网文摘手
文档
视频
思维导图
随笔
相册
原创同步助手
其他工具
图片转文字
文件清理
AI助手
留言交流
The dynamic language runtime (DLR) is a runtime environment that adds a set of services for dynamic languages to the common language runtime (CLR). The DLR makes it easier to develop dynamic languages to run on the .NET Framework and to add dynamic features to statically typed languages.
Dynamic languages can identify the type of an object at run time, whereas in statically typed languages such as C# and Visual Basic (when you use Option Explicit On) you must specify object types at design time. Examples of dynamic languages are Lisp, Smalltalk, JavaScript, PHP, Ruby, Python, ColdFusion, Lua, Cobra, and Groovy.
这么一堆洋文摆着,也懒的翻译了。说直接一点就是DLR使得.NET有了可以执行脚本语言的能力(也许描述的不太精准,不过你可以这么理解)。
基于DLR微软自己开了两套类库来跑python跟ruby。不过我想javascript的通用性更强,做程序员的,不过100%也得有90%写过javascript吧。
那么这种能力有什么好处呢。我能想到的就是对于系统中一些经常需要变更的逻辑,比如折扣算法,积分,以及各种规则,我们可以提到脚本里去写。这样不用任何编译,ctrl+s一下就可以解决问题了。
code:
var jsContext = new IronJS.Hosting.CSharp.Context(); jsContext.ExecuteFile("myDlr.js"); var fun = jsContext.GetFunctionAs<Func<double, double, double>>("cacl"); double a = Double.Parse(this.tbxA.Text); double b = Double.Parse(this.tbxB.Text); var result = fun.Invoke(a,b); this.tbxResult.Text = result.ToString();
js:
var cacl = function (a, b) { return a*b; };
当我修改a*b为a-b的时候结果直接就变成-10了。不用关闭程序,不用编译程序,爽。
来自: 昵称10504424 > 《工作》
0条评论
发表
请遵守用户 评论公约
开启Nginx的gzip压缩功能
开启Nginx的gzip压缩功能开启Nginx的gzip压缩功能。收藏该经验 默认情况下,Nginx的gzip压缩是关闭的 同时,Nginx默认只对text/html进行压缩 所以,开启gzip的指令如下:关于gzip_types,如果你想...
Nginx的gzip压缩
gzip_types text/plain text/css application/x-javascript application/javascript application/xml;2. gzip_disable的设置是禁用IE6的gzip压缩,又是因为杯具的IE6IE6的某些版本对gzip的压缩支...
Julia编程04:Julia调用R和Python
Julia编程04:Julia调用R和Python。mamba create -y -n jlpy python=3.10mamba activate jlpymamba install matplotlibwhich python# /o...
dyncall.org
dyncall.orgIntroduction.The dyncall library encapsulates architecture-, OS- and compiler-specificfunction call semantics in a virtual "bind argument parameters from left toright and ...
SWFUpload实现多文件上传DEMO
SWFUpload实现多文件上传DEMO.简单介绍下SWFUpload: SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash...
4umi useful javascript
9.48 KB.12.59 KB.8.31 KB.6.37 KB.2.54 KB.3.95 KB.2.92 KB.6.60 KB.18.05 KB.5.13 KB.2.82 KB.3.02 KB.6.55 KB.10.73 KB.4.95 KB.21.81 KB.14.03 KB.3.52 KB.7.03 KB.19.25 KB.17.07 KB.3.27 KB.5.32...
(求两直线交点坐标)错在哪了? .NET技术 / VB.NET
Text) Dx1 = (X2 - X1) Dy1 = (Y2 - Y1) Dx2 = (X4 - X3) Dy2 = (Y4 - Y3) sa2 = Interf(Dx1, Dy1, Dx2, Dy2) ...
C#/.NET联合西门子WinCC实现数据通信
最后要做的是通过编写一个简单的Winform程序来读取WINCC中这4个变量的值并显示,这里有两种方式可以实现这样的效果,一种是通过直接访问...
Krzysztof Kowalczyk notes by tag
They think that the opposite is "don''''''''t add unnecessary features" and who would be in favor of unnecessary features?The value of a feature ...
微信扫码,在手机上查看选中内容