网站建设资讯

NEWS

网站建设资讯

vb.net的匿名函数,匿名函数的用法

VB.net Me.Hide()加括号是什么意思?

VB中()通常是方法、过程或者函数用来引用参数用的,如果()是空的,表示该方法、过程或者函数没有引用参数,尽管如此,()还是必需带上。而Me.hide()这个是窗体自我引用hide方法也就是隐藏这个窗体方法。此方法没有引用参数.

创新互联专注为客户提供全方位的互联网综合服务,包含不限于做网站、网站制作、浏阳网络推广、重庆小程序开发、浏阳网络营销、浏阳企业策划、浏阳品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供浏阳建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com

unity3D可以用VB.NET来写游戏脚本吗?

u3d支持c#和js两种脚本,而且c#是最普遍的,咱们看unity用的编译器,是c#的跨平台开源编译器mono,而且是unity更改过得mono,这个编译器是基于c#.net2.0的语法的,但是由于unity的更改,使得它也支持了一些.net3.5的语法,比如匿名函数lambda表.

VB.NET自定义函数

很简单,在end select前再多加一种情况case else return "XXXx",因为你只提供了0-9这10种情况

Public Function Zuhe(ByVal qa As String) As String

Select Case qa

Case "0"

Return "1"

Case "1"

Return "3"

Case "2"

Return "4"

Case "3"

Return "6"

Case "4"

Return "2"

Case "5"

Return "8"

Case "6"

Return "9"

Case "7"

Return "7"

Case "8"

Return "5"

Case "9"

Return "0"

Case else

Return "XXXX"

End Select

End Function

VB.NET中匿名方法怎么写,最简单的就可以

public static String reverse1(String str)

{

return new StringBuffer(str).reverse().toString();

}

2.最常用的方法:

public static String reverse3(String s)

char[] array = s.toCharArray(); 

String reverse = "";  //注意这是空串,不是null

for (int i = array.length - 1; i = 0; i--) 

reverse += array[i]; 

return reverse; 

3.常用方法的变形:

public static String reverse2(String s)

int length = s.length(); 

String reverse = "";  //注意这是空串,不是null

for (int i = 0; i  length; i++) 

reverse = s.charAt(i) + reverse;//在字符串前面连接,  而非常见的后面

return reverse; 

4.C语言中常用的方法:

public static String reverse5(String orig)

char[] s = orig.toCharArray(); 

int n = s.length - 1; 

int halfLength = n / 2; 

for (int i = 0; i = halfLength; i++) { 

char temp = s[i]; 

s[i] = s[n - i]; 

s[n - i] = temp; 

return new String(s);  //知道  char数组和String相互转化

}

c#中的delegate在vb.net中应该怎样表达?

呵呵,我对VB用的不多,搜索了一下,发现下面的语法是有些问题,你可以参考MSDN的示例代码,重新写一遍:

你这使用了匿名函数,貌似VB不支持匿名函数,只能定义函数后再调用

如:

'先定义委托

Public Delegate Sub dele()

Public Sub f1()

方法内容

End Sub

'调用

Dim instance As New dele(AddressOf f1)

button.Clicked += instance

ironpython2.0以后,基于.net的什么特性

.NET 4.0的Beta版已经和Visual Studio 2010 Beta版一起发布了。做为.NET框架的两个重头语言,C#和VB.NET之间增加了很多取长补短的新特性。本文全面的总结了这两个语言的发展前景。匿名方法的支持(VB.NET 中新引入)VB.NET新引入的另一个特性就是是内置(inline)或匿名(anonymous)方法。匿名方法这个名称是非常贴切的,因为它允许你直接定义子方法(Subs)和函数,而不用另外在你的类里面再添加一个顶层(top-level)的方法,从而使这个方法隐藏起来(也就是匿名)。匿名方法还可以访问它所在代码块的所有可用变量,这样的话,定义匿名方法时甚至可以不需要用参数就可以实现数值的传入和返回。在现在通常使用AddressOf 关键字指向一个方法的地方你都可以定义一个匿名函数,所以它最大用处可能在于事件处理,如下例所示:Dim MyTimer As New System.Timers.Timer(1000) Dim Seconds As Integer = 0 AddHandler MyTimer.Elapsed, Sub() Seconds += 1 Console.WriteLine(Seconds.ToString() " seconds have elapsed") End Sub MyTimer.Start() Console.WriteLine("Press any key to exit") Console.ReadLine() 注意对定义器的超时事件处理程序就是内嵌的,而且这个内嵌的方法还直接访问了在它之外定义的变量。您还可以定义内嵌函数: Dim f = Function(a As Integer, b As Integer) Return a + b End Function Dim x = 10 Dim y = 20 Dim z = f(x, y) 如果一个内嵌函数在代码块的上下文语境里有意义的话,那用起来确实是很方便,但是用了它之后很有可能会影响程序的重用性。隐式续行(Implicit line continuation)(VB .NET中新引入)看C#代码时,你一眼就可以看出来语句的末尾在哪里,因为它以分号作为语句的结束符。VB也有一个语句结束符,但是它的结束符是是回车,每个语句都被假设是同一行里。如果你打想打破这个规范,那就不得不使用下划线来显示表明下一行是这个语句的继续。写过VB .NET程序的人就应该会感觉到,这种方法既麻烦,又影响代码的美观。Dim text As String = "Wouldn't it be nice" _ "If you didn't have to" _ "put an underscore to" _ "continue to the next line?" 还好,现在我们再也不用这样了。VB.NET现在支持隐式结尾续行(implicit line continuation)。当编译器在某行发现一条不完整的语句时,它会自动检查下一行的内容是否包含语句的剩余部分。Dim text As String = "Wouldn't it be nice" "If you didn't have to" "put an underscore to" "continue to the next line?" "Sweet! Now you can!" 如果你还是喜欢怀旧的感觉,那也还是可以用原先的显示声明法,那种方法现在也还是可用的。并且有时候我们可以会不得不用它,因为编译器某些情况下可能无法判定下一行是不是续行。放心,这样的情况是不会经常出现的,而且如果发生这样的情况,编译器会通知你。 简化的属性语法(VB .NET新引入)简化的属性语法是另一个从C#中引入VB .NET的特性。通常属性定义看起来是这样的: 'Field Private _name As String 'Property Public Property Name() As String Get Return _name End Get Set(ByVal value As String) _name = value End Set End Property 现在可以简写成: Public Property Name() as String 这把代码行数从9行减少到1行。如果你选择了简化的这种写法,那要注意的一个问题就是你无法访问存储它的值的那块区域,这在按引用传值时会带来问题。如果发生这种情况,您可以随时恢复到用通常的写法或使用一个临时变量。数组类型判断(Array type inference)和多重数组(Jagged Arrays)(VB .NET新引入)VB.NET现在支持数组类型判断和多重数组定义语法。这意味着你在带初始值定义时不用显式地声明它的类型,编译器能自动确定它的类型。例如: Dim Numbers = {1, 1, 2, 3, 5, 8, 13, 21, 34} 当你看到这个数组时,能很快确定它是整数型的,现在编译器就像我们一样能准确作出这个判断。Dim Numbers = {1, 1, 2, 3, 5.0, 8, 13, 21, 34} 当编译器看到上面这个例子时,它会发现5.0不是一个整型数,所以数组类型就是double型。类型判断也可以用于矩阵: Dim Names = {{"Sarah", "Jane", "Mary", "Susan", "Amanda"}, {"Bob", "Joe", "Dustin", "Richard", "Nick"}} 编译器可以推断出string()是上面这个例子的类型。在多重数组中,你会遇到一些问题。你可以把一个二维矩阵当作一个每行的列数都相等的矩阵。多重数组每一行的列数则是可变的,所以它和矩阵还是有一些区别。你可能认为可以定义这样一个多重数组:Dim Names = {"Sarah", "Jane", "Mary", "Susan", "Amanda"}, "Bob", "Nick"} 但是你会发现编译器抛出错误说”数组初始化时缺少三个元素“(Array initialiser is missing 3 elements), 这是因为编译器默认把它当成矩阵看待。如果你想定义一个多重数组,那么只需要把这些行用一对大括号括起来:Dim Names = {{"Sarah", "Jane", "Mary", "Susan", "Amanda"}, {"Bob", "Nick"}} 现在编译器就能推断出来它的类型是string()(),这才是多重数组的正确类型。 From 关键字(VB.NET新引入 )既然说到了初始化,那我们就不得不说说VB .NET中新引入的From关键字。当你创建一个字典、表格或者其它由许多对象组成的对象时,都通常是先创建好这个对象本身,然后再用合适的物品去填充它。现在,有了From关键字,就不用再反复去调用Add方法了,它能自动帮我们调用Add方法以填充列表。因此,现在不用像下面这样写了:Dim Colors As New List(Of String) Colors.Add("Red") Colors.Add("Green") Colors.Add("Blue") 只用缩减到这么一点就可以了: Dim Colors As New List(Of String) From {"Red", "Green", "Blue"} 毫无疑问,它实际上也是调用了Add方法,也就是说它能在任何包含Add方法的对象上起作用。事实上,你甚至可以使用扩展方法(extension method)创建一个Add方法或重载一个Add方法,如果传入的参数和方法声明相吻合,From关键字就会用到它们。在前面的示例中,List对象有一个只需要一个参数的Add方法,参数值就是你想要加入表格的那个字符串。如果你有一个带多个参数的Add方法,那传入参数时就可以像定义矩阵一样做。下面是一个例子,演示如何使用Add方法和一个Dictionary对象。Dim Colors2 As New Dictionary(Of String, String) From { {"Red", "FF0000"}, {"Green", "00FF00"}, {"Blue", "0000FF"}} 因为Dictionary的Add方法包含两个参数,键(key)和值(value),我们在From语句里传入参数时就必须两个两个地传入一组参数。另外,在使用From关键字时一定要注意保持可读性。某些特定情况下,你可能还是会想回到用Add方法


本文题目:vb.net的匿名函数,匿名函数的用法
文章出自:http://cdweb.net/article/phcgdj.html