vb.net匿名方法 c# 匿名内部类

VB.NET和C#逐层横向对比[2]

//函数层

成都创新互联专业为企业提供新田网站建设、新田做网站、新田网站设计、新田网站制作等企业网站建设、网页设计与制作、新田企业网站模板建站服务,十年新田做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

VB支持局部Static变量

C#不支持

VB支持数组的最后一唯大小可变

C#的数组大小不能改变

VB的Try Catch语句支持Exit Try直接进入Finally

C#无类似语句

VB的Catch可以带When子句 使用 NET的异常filter功能有选择的进行捕获

C#完全不支持这一功能

VB可以使用传统的On Error方法 非结构化地处理异常C#仅支持结构化

C#支持使用checked语句暂时打开或关闭整数溢出检查

VB仅支持整个项目级别处理

VB支持使用函数名作为返回变量 也支持Return

C#只支持Return

VB的Try Using For For Each等语句支持使用前边定义的变量

C#的对应语句只能在语句开始处定义

C#可以支持unsafe语法有限地支持指针和stack数据的访问

VB不支持

C#支持yield return语法的迭代器生成

VB不支持

C#支持delegate语句就地生成支持closure的匿名方法

VB不支持

C#支持在委托与方法结合的过程中使用协变和反边规则

VB则只能使用完全匹配规则

VB和C#的循环和分支有若干次要差别

C#支持nullable类型的运算符跨类型支持

VB需要手工完成同样功能

VB支持用实例访问类的静态成员

C#只支持类明访问

VB支持按照非虚函数的规则 调用自身类型定义的一个虚函数

C#不支持这一功能

类库层

VB有一个非常好用Microsoft VisualBasic dll 实现了许多帮助函数 Application Framework应用程序框架 My命名空间等C#只能望眼欲穿了……

C#以out/ref或者大小写区分不同函数 这就是不符合CLS的

VB的每个特性几乎都是CLS兼容的(即使是那些C#不支持的) 在VB中使用不会从根本上影响到与C#的交互

lishixinzhi/Article/program/net/201311/15508

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#中的委托和拉姆达表达式用VB.net怎么写

委托主要用于.NETFramework中的事件处理程序和回调函数,它是事件的基础。委托的作用类似于c++中函数指针的作用。不同的是,委托实例独立于它所封装的方法的类,并且方法类型与委托的类型是兼容的。函数指针只能引用静态函数,而委托可以应用静态和实例方法。所有委托都是继承自System.Delegate类,并且有一个调用列表。调用委托时所执行的方法都被存放在这样的一个连接列表中。使用delegate关键字可以声明一个委托。通过将委托与命名方法或匿名方法关联,可以对委托进行实例化。为了与命名方法一起使用,委托必须用具有可接受签名的方法进行实例化。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication1{//声明一个委托delegateintMydelegate();classProgram{staticvoidMain(string[]args){testp=newtest();//将委托指向非静态方法Mydelegatem=newMydelegate(p.InstanceMethod);//调用非静态方法m();//将委托指向静态方法m=newMydelegate(test.StaticMethod);//调用静态方法m();Console.Read();}}publicclasstest{publicintInstanceMethod(){Console.WriteLine("正在调用非静态方法InstanceMethod().");return0;}staticpublicintStaticMethod(){Console.WriteLine("正在调用静态方法StaticMethod()。。。。");return0;}}}


当前文章:vb.net匿名方法 c# 匿名内部类
网站链接:http://hbruida.cn/article/ddcespg.html