vb.net+lamda的简单介绍
vb.net 用循环计算数组中各元素之和
软糖来回答吧,VB.net用循环是这样的
目前创新互联已为近千家的企业提供了网站建设、域名、网站空间、网站改版维护、企业网站设计、西峡网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
Dim k = New Integer(9) {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
Dim 和 As Integer
For i = 0 To k.Count - 1
和 += k(i)
Next
计算数组中各元素之和更简单的方法是
使用扩展方法Sum或者Lambda表达式,以下两种均可
Dim 和1 = k.Sum()
Dim 和2 = k.Aggregate(Function(m, n) m + n)
vb和delphi是什么来着的啊
Visual Basic(VB)是由微软公司开发的包含协助开发环境的事件驱动编程语言。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速创建一个应用程序。
.NET Framework引入之前
VB 1
VB1.0的DOS版本
1991年4月,Visual Basic 1.0 for Windows版本发布。1992年9月,Visual Basic 1.0 for DOS版本发布。这个连接编程语言和用户界面的进步被称为Tripod(有些时候叫做Ruby),最初的设计是由阿兰·库珀(Alan Cooper)完成的。这在当时引起了很大的轰动。许多专家把VB的出现当做是软件开发史上的一个具有划时代意义的事件。以现在的眼光来看,VB1.0版的功能其实非常的弱,但它在推出当时可是第一个“可视”的编程软件。这使得程序员欣喜之极,都尝试在VB的平台上进行软件创作。
VB 2
1992年11月,VB2.0发布。它对于上一个版本的界面和速度都有所改善。
VB 3
1993年夏天,VB3.0发布,分为标准版和专业版。其中包含一个数据引擎,可以直接读取Access数据库。这使得VB的数据库编程能力大大提高。
VB 4
1995年8月,VB4.0发布了32位版本和16位的版本。其中包含了对类的支持。从VB4开始,逐步引入了面向对象的程序设计思想。VB功能强大,学习简单。而且,VB还引入了“控件”的概念,使得大量已经编好的VB程序可以被我们直接拿来使用。
Visual Basic 1.0~4.0 都必须将源代码编译成 VB 伪代码后解释执行。
VB 5
1997年2月,VB5.0发布。程序员可以用32位的版本导入由4.0版本创建的16位程序,并且能顺利编译。同时还包含了对用户自建控件的支持。自从 Visual Basic 5.0 以后,VB 支持编译成本机代码,但必须在 VB 运行库的支持下工作。
VB 6
1998年夏天,VB6.0发布。VB6是VB.NET至今仍无法完全取代的版本。
.NET Framework引入之后
主条目:Visual Basic .NET
VB.NET 7
2001年,Visual Basic .NET和.NET Framework发布。由于其使用了新的核心和特性,所以很多VB的程序员都要改写程序。
2002年 Visual Basic .NET 2002 (v7.0)问世,此后Visual Basic 包含在 Visual Studio 套装中。
2003年 Visual Basic .NET 2003 (v7.1)推出。
VB.NET 8
2004年,微软开放了Visual Studio.NET 2005的测试版本(代号Whidbey)。包含了.NET Framework2.0的测试版本。2005年11月7日 Visual Basic 2005 (v8.0) 发布,同时为初学者与学生提供 Visual Basic 2005 的免费简化版本 Express Edition。原定免费使用期限一年,之后微软宣布 Express 版本永久免费。Visual Basic 2005的“显著”优点是,可以直接编写出 Windows XP 风格的控件;但是其编写的小程序就需要近 10MB 的内存。
VB.NET 9
2008年2月1日 Visual Basic 2008 (v9.0) 发布。
通过几年的发展,它已成为一种专业化的开发语言和环境。用户可用 Visual Basic 快速创建 Windows 程序,现在还可以编写企业水平的客户/服务器程序及强大的数据库应用程序。
VB.NET 10
Visual Basic 10.0按计划于2010年3月22日随Visual Studio 2010一起正式发布。
新加入的功能:
自动实现属性
集合初始化
不需要在代码断行书写时输入下划线“_”
更好的lambda表达式支持
更好地与Python及Ruby等动态语言的互通操作
Visual Basic .NET 2002(7.0) 及以后的版本运行在 .NET Framework 环境下。
由VB派生的语言
微软开发了一系列有关VB的脚本语言:
Visual Basic for Applications,即VBA,包含在微软的应用程序中(比如Microsoft Office),以及类似WordPerfect Office这样第三方的产品里面。VBA这样嵌入在各种应用程序中看起来有些矛盾,但是它的功能和VB一样强大。
VBScript是ASP的默认语言,还可以用在Windows脚本编写(Shell Script)和网页编码(HTML)中。尽管它的语法类似于VB,但是它却是一种完全不同的语言。VBS不使用VB运行库运行,而是由Windows脚本宿主(wscript.exe - Microsoft Windows Based Script Host)解释执行。这两种语言之中的不同点影响ASP网站的表现。
当微软准备开发一种新的编程工具的时候,第一决定就是利用最抢手的 VB6 来进行修改,或者就是重新组建工程开发新工具。微软后来开发了VB的继任者Visual Basic .NET,同时也是.NET平台的一部分。VB.NET编程语言是一种真正的面向对象编程语言(VB4-VB6 只能称为基于对象而不是面向对象,最明显的特征就是 VB4-VB6 都不支持类的继承),和传统 Visual Basic 并不完全兼容。
语言特性
VB的中心思想就是要便于程序员使用,无论是新手或者专家。VB使用了可以简单创建应用程序的GUI系统,但是又可以开发相当复杂的程序。VB的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组建的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。过去的版本里面VB程序的性能问题一直被放在了桌面上,但是随着计算机速度的飞速增加,关于性能的争论已经越来越少。
窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件(比如文本框或者按钮)。每个控件都有自己的属性和事件。默认的属性值会在控件创建的时候提供,但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了一个动态的程序。举个例子来说:窗体的大小改变事件中加入了可以改变控件位置的代码,在运行时候每当用户更改窗口大小,控件也会随之改变位置。在文本框中的文字改变事件中加入相应的代码,程序就能够在文字输入的时候自动翻译或者阻止某些字符的输入。
VB的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体,类似于操作系统的样子。有很少功能的对话框窗口(比如没有最大化和最小化按钮的窗体)可以用来提供弹出功能。
VB的组件既可以拥有用户界面,也可以没有。这样一来服务器端程序就可以处理增加的模块。
VB使用引用计数的方法来进行垃圾收集,这个方法中包含有大量的对象,提供基本的面向对象支持。因为越来越多组建的出现,程序员可以选用自己需要的扩展库。和有些语言不一样,VB对大小写不敏感,但是能自动转换关键词到标准的大小写状态,以及强制使得符号表入口的实体的变量名称遵循书写规则。默认情况下字符串的比较是对大小写敏感的,但是可以关闭这个功能。
VB使得大量的外界控件有了自己的生存空间。大量的第三方控件针对VB提供。VB也提供了创建、使用和重用这些控件的方法,但是由于语言问题,从一个应用程序创建另外一个并不简单。
术语
在讨论 Visual Basic(不包含 .NET)时,经常可以听到以下这些术语,因此掌握这些术语的基本理解对初学者十分有帮助。
控件:简单的说,控件就是构成或者说建造 Visual Basic 应用程序的图形化工具,包括窗体、按钮、复选框、列表框、数据控件、表格控件和图片控件等等……
事件:由用户或操作系统引发的动作,例如击键、单击鼠标(Click)、双击鼠标(DblClick)、一段时间的限制,或从端口接收数据。
方法:嵌入在对象定义中的程序代码,它定义对象怎样处理信息并响应某事件。例如,数据库对象有打开纪录集并从一个记录移动到另一个记录的方法程序的基本元素,它含有定义其特征的属性,定义其任务和识别它可以响应的事件的方法。控件和窗体是Visual Basic中所有对象的示例。
对象:一个控件、窗体等都可被看作一个对象。
过程:为完成某些特定的任务而编写的代码段,过程通常用于响应特定的事件,也可以当作应用程序的用户自定义函数来使用。
属性:属性是组成用户界面的各对象的性质的具体描述。例如上述“对象”中所提到的尺寸、位置、颜色、宽度、高度等等都称为控件的属性。属性决定对象的外观,有时也决定对象的行为。对象的属性绝大部分是VB中已经事先定义好的,但也有的属性是需要在应用过程中才去定义的。属性即可为对象提供数据,也能从对象取回信息。
VB.NET的变革
VB(6.0 及以前)不拥有的特性
继承 (计算机科学):Visual Basic 5 以后,VB 虽然提供了简化的类支持,但仍然不能满足程序员的需求。
多线程支持:虽然可以使用Windows API完成,不过稳定性与调试都很难保证。
异常处理:只支持"On Error Goto line"语句。
对指针的支持非常有限。
VB只能支持8到32位的整数,很多语言都有无限制的支持。
VB不允许在任何数组存储器在不变的变量。
VB不支持其它程序语言共享程序代码。
Visual Basic .NET(VB 7.0)以后的版本基本支持了上述特性。
VB 6 与 VB.NET 比较
很多程序编写者也会留恋VB6。VB6仍保留了一些script语言的特性,例如:不用事先声明变量类型。 当第一次对未声明类型的变量进行赋值时,VB6便会把这个值的类型作为该变量的类型。这种script语言的特性,对程序的可维护有很多不良的影响,尤其对初阶程序员来说,更会被培养成不良的编写程序习惯,所以VB.NET之后的版本已不保留这种特性。
Basic是作为初学者的编程语言而被制作,当时是以直译式(参见VB 伪代码)的形式出现。同样拥有不用事先声明变量类型的特性。这种特性对于帮助初学者快速入门,其实是有正面的作用,可以使初学者更快完成简单的代码编写,而不用顾虑到程序要用哪些变量,要选哪些类型。对于有一定程序编写经验的人来看,要经常为for i=1 to 9中的变量i声明类型也颇烦人,所以这种特性在某些场合上,是相当讨人欢心的。
VB.NET 的具体变革如下:
子程序(函数)的定义与调用。
数组的初值设定并且需要注明范围。
函数在格式上的改变:Date函数、Time函数、部分数学函数部分不能直接使用,String函数不能使用,DatePart、DateAdd、DateDiff函数的第一个参数在定义上有所改变。
Set保留字不再使用。
Wend保留字以End While取代。
新增运算符:+=、-=、/=、*=。
缺点
这样大的变革一度被认为是微软为了延长VB的生命力而做出的,结果把VB改得几乎面目全非,成了一个类似于C#的新语言。VB6的程序几乎无法运行在VB.NET中,尽管微软针对该问题提供了“升级向导”,也无法执行彻底的转换。这样,程序员不得不付出相当大的精力,手工转换代码。
2005年,微软宣布将不会再对非.NET版本的VB进行支持。VB社区立即作出反应表示关心这个消息,一些老用户还递交了希望能够继续对VB进行技术支持的请愿书。微软目前还不愿意改变他们的决定。
关于VB的争议
反对者
VB是一种充满了争议的语言:很多程序员对VB程序的品质有强烈的反感。很多人认为VB不配他们使用,认为它是一种给儿童和菜鸟程序员的语言。它自从设计开始就是一种简单的语言。一些C++和Java中的特性在VB中并没有出现。在感受开发的方便和快速的同时,一些类似于编译时进行类型和声明检查的功能在默认情况下是关闭的。这样一些程序员一边感叹VB的易用性,一边沮丧地看着一些类似于“未定义类型”错误的发生。
一些批评家认为VB的简单特性使得其在未来具有伤害性。很多人自学了VB,但是并没有学到好的编程习惯。当VB进入课堂的时候,学生们不会学到很多基础的程序技术和结构,因为很多技术已经包含在那些对用户可见的组件里面了。不用学习标准的编程习惯,因为VB具有可视化的特性,所以导致了一些莫名其妙的代码的产生。而且很多错误和警告的检查默认情况下都是关闭的,程序员很难找到隐藏的错误。有经验的程序员在用VB编程的时候都会把这些选项打开。
很多批评家批评微软简单地拷贝了BASIC的思想到VB中。著名的计算机科学家艾兹格·迪科斯彻说过一句名言:“如果一个学生最早学过BASIC,那么几乎不可能让他学会优秀的编程:因为这些人已经放弃了重生的希望。”(Dijkstra对待Fortran、PL/1、COBOL和APL同样也毫不留情。)另外一个笑话是:“真正的程序员不用BASIC。12岁以下的孩子才用。”
并不是非常简便,它开发的程序只能运行在Microsoft Windows中。
文件太大了。Visual Studio要用好几张盘才能装下。VB程序在运行时候还需要一个1.4M大小的运行库。
IDE中有错误。
VB不能很好的综合Windows的基础API,很多时候要使用低级运算的“小伎俩”来进行编程。而C语言的低级内存运算比VB的要简单得多。
支持者
但是很多VB的支持者解释说VB的易用性就是它最大的优势,可以让经验丰富的VB程序员或是刚刚懂得皮毛的人都能用自己的方式快速开发程序。而且VB的程序可以非常简单的和数据库连接。比如利用控件可以绑定数据库,这样一来用VB写出的程序就可以掌握数据库的所有信息而不用写一行代码。
很多语言的特性比如GoSub、On Error和用变量名字的最后一个字符判断声明类型(比如字符串型str$)都是从BASIC中来的。VB的语法和绝大部分语言都不同,可能会让新的程序员混淆。比如声明“Dim a, b, c As Integer”声明了 c 为整形变量,但是 a,b 依然是 Variant(.NET 中为 Object)类型的。(如果想声明 3 个 Integer,必须写 Dim a As Integer, b As Integer, c as Integer;而直接写Dim a,后面不写类型,则自动变成Variant类型——占用大量资源。这个问题在 VB.NET 以后的版本已经解决,Dim a, b, c As Integer的类型都将为整型)
还有一些特性,比如下划线字符“_”支持一行代码分多行写。一些程序员在使用的时候由于不符规范而引起错误。
总结
VB会吸引更多的赞誉和批评,也会继续为广大的用户和程序员使用。它非常适合用来开发拥有友好界面的程序(比如针对终端的数据),但是不适合开发其它程序(比如联合计算程序)。
VB对初学编程者是一个很好的入门软件,尤其对一些有编程才能而自己也不知道的人,由VB着手可轻易引发他们的潜能,发挥他们在这方面的才华。
c# 如何实现委托执行
C# 声明个委托,再调用Invoke就行了
可以将委托指向一个写好的方法,也可以用lambda表达式动态声明委托。
Funcint method=()=Convert.ToInt32("5");
int result=method.Invoke();
VB.NET RichTextBox 保存为 Word文档
将Word文档嵌入到WinForm窗体显示Word文档内容
private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog P_GetFile = new OpenFileDialog();//创建打开文件对话框对象
DialogResult P_dr = P_GetFile.ShowDialog();//显示打开文件对话框
if (P_dr == DialogResult.OK)//是否点击确定
{
WebBrowser.Navigate(P_GetFile.FileName);//打开Word文档并显示
}
}
//在Word文档中插入图片
private void btn_New_Click(object sender, EventArgs e)
{
btn_New.Enabled = false;//停用新建按钮
ThreadPool.QueueUserWorkItem(//使用线程池
(P_temp) =//使用lambda表达式
{
G_wa = new Word.Application();//创建Word应用程序对象
Word.Document P_wd = G_wa.Documents.Add(//建立新文档
ref G_missing, ref G_missing, ref G_missing, ref G_missing);
Word.Range P_Range = P_wd.Paragraphs[1].Range;//得到段落范围
object P_Ranges = P_Range;//创建ojbect对象
P_wd.InlineShapes.AddPicture(//向文档中插入图片
G_OpenFileDialog.FileName, ref G_missing, ref G_missing, ref P_Ranges);
G_str_path = string.Format(//计算文件保存路径
@"{0}\{1}", G_FolderBrowserDialog.SelectedPath,
DateTime.Now.ToString("yyyy年M月d日h时s分m秒fff毫秒") + ".doc");
P_wd.SaveAs(//保存Word文件
ref G_str_path,
ref G_missing, ref G_missing, ref G_missing, ref G_missing,
ref G_missing, ref G_missing, ref G_missing, ref G_missing,
ref G_missing, ref G_missing, ref G_missing, ref G_missing,
ref G_missing, ref G_missing, ref G_missing);
((Word._Application)G_wa.Application).Quit(//退出应用程序
ref G_missing, ref G_missing, ref G_missing);
this.Invoke(//开始执行窗体线程
(MethodInvoker)(() =//使用lambda表达式
{
btn_Display.Enabled = true;//启用显示按钮
MessageBox.Show("成功创建Word文档!", "提示!");
}));
});
}
unity3D可以用VB.NET来写游戏脚本吗?
u3d支持c#和js两种脚本,而且c#是最普遍的,咱们看unity用的编译器,是c#的跨平台开源编译器mono,而且是unity更改过得mono,这个编译器是基于c#.net2.0的语法的,但是由于unity的更改,使得它也支持了一些.net3.5的语法,比如匿名函数lambda表.
微软是不是要放弃 VB 了
VB是微软独占的语言,而C#一开始是作为标准的姿态出现的,所以C#设计得更加严谨而VB则比较随意。然而在后面的发展当中,C#并不顾及自己的标准身份,每个版本都加入了许多新的feature,很多时候还是重复添加的冗余feature(比如delegate匿名函数和lambda表达式),以至于后来也就不再矜持,将VB上那些“不够严谨”的功能一股脑全部加入了,例如static class,可选并带默认值的参数列表,动态调用,static成员导入(例如using static System.Math,原本VB远古就具有的Imports System.Math具有相同功能)等等。
而VB一开始是一种非常简单的语言,在化进程中,为了.net化经历了数次巨大的设计改变,其中有很多feature的设计不知为何非常烦冗,例如MustInherit, NotOverridable等可读性差的长关键字,多余的ByVal关键字,早先对符号的占用导致泛型语法变长等等。而且还保留了对VB6蹩脚的兼容性,导致语言的优美程度急剧下降。VB2005时还曾经计划过一批奇葩的特性,后面大都没有实现。当然偶尔还是能看到一些亮点的设计(例如XML表达式,XML查询,匿名类型自动实现GetHashCode等)。到VB2008开始VB组针对语言烦冗之处进行了大幅改进,新的类型推测Dim语句,可省略ByVal的写法,隐式换行符的引进,以及新语法较为简洁的设计设计都使得VB得到简化但越来越和C#一致。所以当时微软就宣布以后两种语言在主要功能上均会共同设计不再分离。
从VS2015开始VB和C#变得更加高度一致化,这是从Roslyn计划开始后就更加明显的行为。微软目前对VB的态度就是和C#互为双胞胎的语言。
分享文章:vb.net+lamda的简单介绍
当前路径:http://scyanting.com/article/dsesshj.html