vb.net匿名对象 c#匿名对象

在VB.NET中,什么是类?什么是对象?它们之间的关系是什么?

人类是一个类,你是人,我是人,都是人类的实例(instance),或称对象(object)。一个类描述一类事物,描述这些事物所应具有的属性,如人有身长、体重、文化程度、性别、年龄、民族等。

网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、成都小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了湖州免费建站欢迎大家使用!

一个对象是类的一个实例,它具有确定的属性,如张三(人的实例)身高180,体重70公斤,大学本科,男,21岁,汉族。

人类只有一个,人类的实例可以有无数个。

对象可以被创建和销毁,但类是无所不在的。

例如,桌子是一个类, 人们不断打造各种尺寸和风格(属性)的桌子(桌子的实例),打造桌子, 又不断毁坏桌子,年复一年,旧的去了,新的又来,但桌子的概念没变,它是一个抽象的概念。应该称它为桌子类,以区别于打造的具体桌子。

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相互转化

}

vb窗体上建立对象的常用方法

在VB 2008当中,配合LINQ新增了许多新的语法,底下这也是VB在建立对象时的新写法:

Dim stud1 As New students With {.name = "David", .score = 100}

上述指令会建立一个students 对象的实体,并且填入默认的值。

这样的写法简便不少,该对象的类声明如下:

Public Class students

'这边应该写成property, 只是我稍微偷懒一下写成field,不影响demo

Public name As String

Public score As Single

End Class

上面黄色程序代码这样的方式我们称之为命名类型的对象声明,既然,有命名类型,就一定会有匿名类型的声明方式,语法如下:

Dim stud2 = New With {.name = "David", .score = 100}

这个就炫了吧,不用类型照样可以声明出一个对象实体,这个在VB 2008称为匿名类型,其实和LINQ有相当大的关系,干嘛搞出一个匿名类型呢? 它可以方便我们不需要事先建立一个类,就可以具有对象实体,会有这样的需求?

某些时候,我们只想要产生一个对象,并且随手就拿来用了,我们可能懒的声明一个对象的类,然后再用New指令产生一个对象实体,也有时候我们只是希望建立一个临时的对象来存放特定数据处理(查询)之后的结果,最典型的例子就是LINQ(之后再述),因此匿名类型就应运而生了。

匿名类型并不特别也不神奇,实现的方式很简单,Compiler 会自动依照你的需要,帮您建立一个类Class,帮你自动决定类中属性的型态。这个自动建立的类没有名称(因为是编译阶段自动建立的,所以没名称也不要紧,反正我们在程序代码当中也不会用到这个类,只会用到这个类产生的对象实体)、这个类会直接继承自 Object,并且包含您在声明对象时指定的属性。

这个特性是一个基础,它让LINQ查询的结果可以自动建立成一个对象,例如我们在介绍的LINQ功能中,有一段程序代码:

Structure BMI

Dim name As String

Dim height As Integer

Dim weight As Integer

Dim BmiValue As Single

End Structure

Dim matrix(5) As BMI

(……略……)

'查询BMI值大于25的人

Dim result = From c In matrix Where c.BmiValue 25

其中matrix是一个对象没有错,但是result是什么类型? 怎么出现的? LINQ查询会建立出一个对象? 怎么建立的呢? 关键就在匿名类型。

有了匿名类型这样的技术作为基础,LINQ的查询结果(对象)就可以不需要事先建立一个特定类作为存放查询结果的数据类型。而可以通过编辑器自动产生这个类,我们只需要直接把结果(对象)拿来用,因为我们在意的是这个查询结果对象而非该类本身。

不过这边要注意,并非所有的LINQ查询结果一定就需要建立一个匿名类型来存放,也有可能只需要系统内建的类型即可。

例如:

Dim result = From c In matrix Where c.BmiValue 25 Select c.name

result 就只需要String类型即可。

vb和vb.net的区别和特点

1、vb.net  完全符合面向对象的编程语言抽象、封装、继承的四大特性,而vb不支持继承。

2、错误处理不同。

vb中只是On Error.....goto和On Errer Resume Next ,这些错误称为非结构化异常处理。而在vb.net中采用的结构化异常处理机制,try...catch....finally控制。

3、两者产生的窗体不同。

vb.net 允许创建不同类型的应用程序,例如,创建ASP.NET和ASP.NET Web 服务应用程序,还允许创建控制台应用程序和作为桌面服务运行的应用程序。但是vb 只能创建Windows窗体。

4、数据库访问的差别。

vb6.0是通过ADO(Active X Data Objext)来实现对数据库访问。而vb.net 是通过ADO.NET来访问数据库。

扩展资料

Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。是一种可用于微软自家产品开发的语言。

“Visual” 指的是开发图形用户界面 (GUI) 的方法——不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象add到屏幕上的一点即可。

“Basic”指的是 BASIC (Beginners All-Purpose Symbolic Instruction Code) 语言,是一种在计算技术发展历史上应用得最为广泛的语言。

Visual Basic源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建Active X控件,用于高效生成类型安全和面向对象的应用程序 。

参考资料:百度百科-Visual Basic


名称栏目:vb.net匿名对象 c#匿名对象
文章转载:http://scyanting.com/article/hepioi.html