vb.net 实现javascript中的Eval功能

原创 2007年09月28日 16:43:00

  vb.net中实现javascript中包含的功能,绝对不会有问题。做过javascript开发的程序员对eval都会有深刻的印象。只是在vb.net中实现这个功能没有想象得那么简单。不管怎么说能实现就好。但不知道是否还有其他比较简单的方法。 

  例子代码如下:

 

Imports System.CodeDom.Compiler
Public Class Form1Class Form1

    
Private Sub Button1_Click()Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
         
MsgBox(Calculate("1+2*3+4").ToString)
    
End Sub


    
Public Function Calculate()Function Calculate(ByVal expression As StringAs Object
        
Dim className As String = "clsF"
        
Dim methodName As String = "funCal"

        
Dim classSource As New System.Text.StringBuilder

        classSource.Append(
"public   class   " + className + vbCrLf)
        classSource.Append(
"         public  function " + methodName + "() as object" + vbCrLf)
        classSource.Append(
"                 return   " + expression + vbCrLf)
        classSource.Append(
"         end function" + vbCrLf)
        classSource.Append(
"end class")

        
Dim codeProvider As New VBCodeProvider
        
Dim cParams As New CompilerParameters
        cParams.GenerateExecutable 
= False
        cParams.GenerateInMemory 
= False
        
Dim cResults As CompilerResults = codeProvider.CompileAssemblyFromSource(cParams, classSource.ToString)
        
Dim asm As System.Reflection.Assembly = cResults.CompiledAssembly
        
Dim eval As Object = asm.CreateInstance(className)
        
Dim method As System.Reflection.MethodInfo = eval.GetType().GetMethod(methodName)
        
Dim args() As String = Nothing
        
Dim reObj As Object = method.Invoke(eval, args)

        GC.Collect()
        
Return reObj
    
End Function

End Class

c#中实现类似js的Eval|.NET中执行Javascript(表达式是字符串的计算)

我们一般只知道javascript中有个eval方法,其实在c# 中也有这样一个方法,下面我们讲解c#中Eval的使用方法。   第一步在你的项目中添加Microsoft.Vsa和Microsoft....

VB.net版机房收费系统——VS报表制作及功能实现中的问题及解决办法(好学的代价=Bug)

机房重构报表功能用户Sa登录失败;设计报表的时候报错:参数缺少值;本地报表处理期间出错,尚未指定运行报表需要的一个或多个参数。...

章鱼哥出品_VB.NET ComboBox、 TextBox 实现自动完成、自动过滤 模糊查询的功能

本文以ComboBox为例讨论自动过滤功能,主要有两种方式:(TextBox也一样)   一、以AutoCompleteSource、AutoCompleteMode、AutoCompleteCus...

VB.NET中实现Drop拖放功能

在VB.NET中实现拖放操作 Implementing Drag and Drop in Visual Basic .NET Steve Hoag Visual Basic® .NET Team...

vb.net 实现无标题栏窗体拖拽功能

'较好用,没有闪动   Declare Auto Function ReleaseCapture Lib "user32.dll" Alias "ReleaseCapture" () As Bool...

利用VB.NET Format函数实现四舍五入功能

VB.NET经过长时间的发展,很多用户都很了解VB.NET了,这里我发表一下个人理解,和大家讨论讨论。在VB.NET要做到四舍五入的功能应该用VB.NETFormat这个函数,用CInt或CLng都只...
  • hy6688_
  • hy6688_
  • 2013年06月11日 10:43
  • 3395

章鱼哥出品——VB.NET 屏幕自适应功能的实现

最近有个网友问我屏幕自适应的问题,即如果屏幕的分辨率改变了,窗体也能适应屏幕的大小,不至于有些控件不能显示。其实代码还是很简单的,我不喜欢讲很多的原理啊什么的,直接上代码。所有代码可直接复制测试。方便...

VB.NET使用接口实现附带插件功能的程序

插件功能给软件的使用者可以扩充软件功能的机会。我们不可能让软件适用于所有人,也不是所有的人都会出资帮助你实现他们的需求。插件功能提供了一个软件的高度可扩充性,允许用户作为软件的二次开发者,继续完善软件...

VB.net 实现DOS功能

  • 2015年04月01日 08:40
  • 5KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vb.net 实现javascript中的Eval功能
举报原因:
原因补充:

(最多只允许输入30个字)