博文
从VB6到VB.NET的变化综述 (转)(2006-09-03 16:15:00)
摘要:着Microsoft .NET平台的发布,Visual Basic开始成为一种完全面向对象的语言,简称为VB.NET。虽然有了一些根本性的变化,开发者从VB6到VB.NET的学习热情依然相当高,即使对于有经验的编程人员也是如此。本文中,我将列出Visual Basic语言中的变化,并在适当的地方举例说明。这里所列出的可能不完全,但是已经包括了大部分的功能。如果你是一个想要转到VB.NET上去的 VB程序员,这篇文章就一定要读一读。
ASP.NET Beta 1版本可以从http://www.asp.net/免费下载。本文中所讨论的一些变化是属于 Beta 2版本的,这些 Beta 2中的新内容在ASP.NET的Beta 1 版本中是无效的,文中都作了注明。
数据类型的改变
.NET平台为所有支持语言提供了公共类型系统,这就意味着所有语言都必须支持支持公共语言运行时间环境所强制的相同的数据类型,如此就消除了不同语言之间数据类型的不兼容性。例如,在一个32位的Windows平台上,在C++这类语言中,integer数据类型占据4个字节,而在 VB 中则占据2个字节。以下是VB.NET中与数据类型有关的变化:
在 .NET下,VB.NET 中的Integer数据类型也是4个字节。
VB.NET没有currency 数据类型,作为代替,它提供了decimal。
VB.NET 引入了一种新的数据类型,叫做Char。 Char数据类型占据2个字节,可以存储Unicode 字符。
VB.NET 没有Variant数据类型。为了得到与variant类型相同的结果,你可以使用Object数据类型。因为在.NET中的一切,包括原始数据类型,都是一个对象,一个object类型的变量,它可以指向任何数据类型。
在VB.NET中没有固定长度字符串的概念。
在VB6中,我们使用Type关键字来声明用户自定义
结构。VB.NET引入了与此目的相同的结构关键字,语法的其它部分是相同的:
Structure MyStruct1
...
End Structure
变量声明
现在看看一个简单的VB6例子:
Dim x,y......
概述从VB6到 VB.NET 的 变化(2006-09-03 16:12:00)
摘要: 深入了解 ASP.NET...
这篇文章论述了从VB6/VBScript 到VB.NET的重要的语言变化。当创建ASP.NET页时, 你必须使用一种与.NET兼容的编程语言,正如 C#, VB.NET, 或者 JScript.NET. 然而,从VB6/VBScript 到VB.NET 有一些重要的变化,这也是我们这篇文章要谈论的问题。要从整体上更深入的了解 ASP.NET , 请查阅 ASP.NET Article Index!
同样,要获得更多的资料请查阅微软的文章:
Preparing Your Visual Basic 6.0 Applications for the Upgrade to Visual Basic.NET.
绪论
随着微软.NET开发平台的发布,Visual Basic 已经融入了一个完全的面向对象语言 (命名为VB.NET). 然而由于这些跟本的变化,从VB6到VB.NET的进阶,即使是经验丰富的程序员,也要花相当多的时间。我将试图在下面列出VB.NET对于Visual Basic的语言变化,并尽可能在恰当的地方给出范例. 这个列表不一定完整,但它的确覆盖了主要的特征。如果你是一个想升级到VB.NET 的VB程序员,那这篇就是你的必读文章.
注意到当前的(到2001年5月30),ASP.NET 还是Beta 1版本,它可以从www.ASP.NET免费的下载.然而,这篇文章所谈到的一些变化是对于Beta 2版本(将计划于6月17发布)来说的,因此对于Beta 1 版本它们是不会起作用的。这部分变化将会在下边的文章里特别说明.
数据类型的变化
.NET 平台给所有它支持的语言提供了一个公共数据类型系统(Common Type System)。作为通用语言运行环境的强制标准,所有的语言必须支持相同的数据类型。这结束了众多语言数据类型不兼容的状况。例如,在32位的 Windows平台, C++中的整型数据占用了4个字节,然而在VB中,它只占用了2个字节。下面是在VB.NET中关于数据类型的主要变化:
在 .NET下VB.NET中的整型数据也是4个字节。
......
VB.NET实现关机和重新启动(2006-09-03 16:10:00)
摘要:Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Integer, ByVal dwReserved As Integer) As Integer
Const EWX_FORCE As Short = 4
Const EWX_LOGOFF As Short = 0
Const EWX_REBOOT As Short = 2
Const EWX_SHUTDOWN As Short = 1
Dim retval As Integer
' 定义Esc按键
Const VK_ESCAPE As Short = &H1Bs
Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click
If Option1.Checked Then
' 注销当前用户
retval = ExitWindowsEx(EWX_FORCE, 0)
ElseIf Option2.Checked Then
' 关闭计算机
retval = ExitWindowsEx(EWX_SHUTDOWN, 0)
ElseIf Option3.Checked Then
' 重新启动
retval = ExitWindowsEx(EWX_REBOOT, 0)
End If
End Sub
Private Sub Command2_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command2.Click
Me.Close()
End Sub
' 按Esc键时,......
vb.net显示系统信息(2006-09-03 16:09:00)
摘要:显示系统信息
实例说明
在本实例中,我们通过使用sysinfo控件得到有关操作系统的信息,屏幕和电源的信息。程序运行结果如图97-1所示。
技术要点
l 使用SysInfo控件
l 得到操作系统版本号、电源属性
实现过程
■ 新建项目
打开Visual Studio.NET,选择“新建项目”,在项目类型窗口中选择“Visual Basic项目”,在模板窗口中选择“Windows应用程序”,在名称域中输入“SysInfo”,然后选择保存路径。单击“确认”。
■ 添加控件
向窗体上添加十个Label控件(可以通过菜单“格式”进行排列)。
■ 设置属性
将左面一栏的Label控件的Text属性改为和界面一致。
■ 添加代码
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'得到操作系统平台代号,其中1表示95/98,2表示nt/2000系统
Select Case sysinfo.OSPlatform
Case 1
Label2.Text = "Windows95/98"
Case 2
Label2.Text = "WindowsNT/2000"
End Select
'得到操作系统版本号
Label4.Text = sysinfo.OSVersion & "." & sysinfo.OSBuild
'得到桌面尺寸大小
Label6.Text = sysinfo.WorkAreaHeight & "X" & sysinfo.WorkAreaWidth
'得到电源状态值,1表示交流电元,0表示电池
Select Case sysinfo.ACStatus
Case 1
Label8.Te......
VB.Net学习笔记(数据类型基础)(2006-09-03 16:07:00)
摘要:Net中的数据类型是程序员需要认真掌握的基础知识。.NET 中类型的两个基本类别是“值类型”和“引用类型”。基元类型、枚举和结构为值类型。类、字符串、标准模块、接口、数组和委托为引用类型。
所有的类型要么是值类型,要么是引用类型,但有一种情况例外。根类型 System.Object ,它非常特殊,因为它既不是引用类型也不是值类型,而且不能实例化。因此,类型 Object 的变量可包含值类型或引用类型。
不过无论值类型还是引用类型,它们的声明方式都是一样的,当然它们的语义是不同的。
值类型
值类型直接存储在堆栈上,要么在数组中,要么在另一个类型中。值类型总是直接访问;不可能创建对值类型的引用。值类型的值不能为空引用,值类型的变量赋值会创建所赋的值的副本。
值类型副本创建意义举例
Dim i As Int32 = 10
Dim j As Int32 = i
j = 20 'i=10
基础类型
什么是基础类型呢?简单的讲就是如果一个类型的值是可以使用常数来描述的,该类型就是基础类型。当表达式的操作数均为基元类型常数时,编译器是可以在编译时计算表达式的。这种表达式被称为常数表达式。基本类型总是有初始值的。
VB.Net定义的基础类型:整数(包括字节),浮点、布尔、日期、字符和字符串。
分类
类型
存储分配
整数值类型
Byte
1
Short
2
Integer
4
Long
8
浮点值类型
Single
4
Double
8
Decimal
16
布尔
Boolean
2
日期
Date
8
字符
Char
2
字符串
String
取决于实现......
细说VB.NET(下)(2006-09-03 15:39:00)
摘要:表单和新IDE面孔
Visual Basic.NET 的面向对象功能很伟大,但第一次启动 VB.NET 时还注意不到它。可能你注意到的第一件事是它的 IDE。IDE看起来可能很熟悉,建立VS.NET IDE的团队以前的工作是开发VB的IDE,对IDE的增强借鉴了VB IDE的经验。
同时,IDE的改变远比外表显示的深刻。所有.NET语言使用相同的IDE,并且IDE中的新工具功能强大又易于理解。你能把任何一个设计窗口设置为自动隐藏 (就像你能自动隐藏Windows任务栏那样),这样就大大地减少了混乱。主工作区域是一系列选项卡,这意味着IDE不再同时显式多个表单和代码模块。当打开对象的源代码时,IDE在它的主工作区域为工作的对象添加一个新的选项卡。
IDE还包括一个叫作任务表(Task List)的新窗口。它的内容由IDE创建的项目组成。例如,如果在试图编译一个工程时收到一个错误,VB在任务表里创建一个项目来解释这个错误。你能直接向任务表里添加项目,或者通过在代码里以 "TODO:"开始一个注释行,你可以在代码位置和任务之间建立联系。我喜欢Microsoft实现任务表的方式;在程序出炉前,都需要完成些什么?估计它能帮我省掉很多时间和麻烦。看到它时,你最容易产生的一个想法就是:以前怎么就没人想到它呢?
你能注意到的另一个变化就是:VB.NET的表单。Microsoft废弃了旧的表单引擎而使用Windows Form代替它。所有基于 CLR的语言都使用Windows Form引擎。相对于VB6的表单引擎,它有几个重要的改进。例如,Windows Form让你能创建能自动调整组件尺寸的表单,并允许将控件锚定在表单里的特定位置。换句话说,不再需要使用第三方控件就能完成这些特殊任务。Windows Form还允许表演像透明表单这样的很酷的技术。
过去,VB隐藏了建立表单的所有魔术。你使用IDE设计表单并把代码添加到Initialize事件上,但你没有手段来控制这两点之间的过程。现在,表单就是一个类,它包含用来建立表单所有的代码。我把这些代码称为肥料代码,因为大多数开发者希望远远离开它们,越远越好。要想可靠地弄坏你的程序,没有比折腾这些代码更好的办法了。另一方面,技术娴熟的用户可以通过这些代......
教你理解复杂的C/C++声明(2006-09-03 15:36:00)
摘要:陆其明 译
原文:
http://www.codeproject.com/cpp/complex_declarations.asp
作者:Vikram A Punathambekar
介绍
曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明:我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修饰符和typedef,还有函数指针,最后介绍一个能够让你准确地理解任何C/C++声明的“右左法则”。需要强调一下的是,复杂的C/C++声明并不是好的编程风格;我这里仅仅是教你如何去理解这些声明。注意:为了保证能够在同一行上显示代码和相关注释,本文最好在至少1024x768分辨率的显示器上阅读。
基础
让我们从一个非常简单的例子开始,如下:
int n;
这个应该被理解为“declare n as an int”(n是一个int型的变量)。
接下去来看一下指针变量,如下:
int *p;
这个应该被理解为“declare p as an int *”(p是一个int *型的变量),或者说p是一个指向一个int型变量的指针。我想在这里展开讨论一下:我觉得在声明一个指针(或引用)类型的变量时,最好将*(或&)写在紧靠变量之前,而不是紧跟基本类型之后。这样可以避免一些理解上的误区,比如:
int* p,q;
第一眼看去,好像是p和q都是int*类型的,但事实上,只有p是一个指针,而q是一个最简单的int型变量。
我们还是继续我们前面的话题,再来看一个指针的指针的例子:
char **argv;
理论上,对于指针的级数没有限制,你可以定义一个浮点类型变量的指针的指针的指针的指针...
再来看如下的声明:
int RollNum[30][4];
int (*p)[4]=RollNum;
int *q[5]; <......
细说VB.NET(上)(2006-09-03 15:32:00)
摘要:
微软公司提出的.NET概念,正从各个方面渗入到我们的生活中。它将产生的作用,诚如一位业内名家所描述的:“请忘掉你认为你所知道的,.NET将改变一切”!既然如此,无论是IT业内人士、还是企业决策者,快速领会这个新概念的含义及深远影响,都显得非常必要。
概要
VB正在不断地发展中,它具备了以前VB编程人员作梦都想拥有的性能,想象一下你将随心所欲的利用这些性能,是不是很令人激动?然而,这个计划于2001年第四季度上市销售的VB版本可能会给你带来些小麻烦,因为要完全掌握它需要一个较长的学习周期,而且其中包括了一些微妙的变化,你可能在使用他们的时候出现错误。
需要准备的条件:建议获得Visual Basic.NET beta 版,这些内容对所有VB程序员都是有用的。
Microsoft .NET平台的涵盖面很广,而且很难预测它的真正意义。我们注意到,现在有很多关于.NET的不正确的理解。因此在这篇文章里,我们将把给你一个VB.NET到底是些什么的概念,从头到尾说一说它是什么、它能干什么以及怎样才能充分发挥它的优点。我们要特别地细看一下IDE的改变、面向对象特征、底层结构的改变、一些“现代化”的语法以及包装和分发方面的增强。我们将讨论这些功能能为你做什么,解释他们的优点与不足。由于这些改变是如此之大,而且涉及方方面面,因此希望这一篇文章能满足你全部的要求是不现实的,要了解这方面全部的知识请参阅有关文章和书籍。
Visual Basic.NET 和你现在所知的开发工具完全不同,并且这个新版本会改变你的未来。到底有多大不同?如果你觉得从VB3迁移到VB4是一个很大的变化,那这次VB.NET会让你感到震惊。这次升级与其说是VB的一个新版本,还不如说是迁移到一个新平台上,你所面临的情况就和从DOS迁移到Windows差不多。
VB获得了继承能力
VB.NET预期拥有的第一新功能就是继承能力。继承是VB开发者长期以来要求得最多的功能。判断一下对继承的要求是不是像早些时候对本地化编译器的要求一样将是一件很有意思的事,后者,当Microsoft提供了一个以后,你就几乎听不到多少这方面的言语了。
Visual Basic现在是真正的面向对象......
C语言笔记(2006-09-03 15:26:00)
摘要:
第一章 概述
1. C语言的特点
①语言简洁、紧凑,使用方便、灵活。共有32个关键字,9种控制语句。
②运算符丰富,公有34种运算符。
③数据结构丰富,数据类型有:整型、实型、字符型、数组、指针、结构体、共用体等。
④具有结构化的控制语句(如if…else、while、do…while、switch、for)
⑤语法限制不太严格,程序设计自由度大。
⑥允许直接访问物理地址,能进行位(bit)操作,可以直接对硬件操作。
⑦生成目标代码质量高,程序执行效率高。
⑧可移植性好。
2. C语言的用途
C虽不擅长科学计算和管理领域,但对操作系统和系统实用程序以及对硬件进行操作方面,C有明显的优势。现在很多大型应用软件也用C编写。
Top of Page
第二章 数据类型、运算符与表达式
1. C的数据类型
C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
2. 常量与变量
常量其值不可改变,符号常量名通常用大写。变量其值可以改变,变量名只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线。否则为不合法的变量名。变量在编译时为其分配相应存储单元。
3. 整型数据
整型常量的表示方法:十进制不用说了,八进制以0开头,如0123,十六进制以0x开头,如0x1e。
整型变量分为:基本型(int)、短整型(short int)、长整型(long int)和无符号型。不同机器上各类数据所占内存字节数不同,一般int型为2个字节,long型为4个字节。
4. 实型数据
实型常量表示形式:十进制形式由数字和小数点组成(必须有小数点),如:0.12、.123、123
0.0等。指数形式如123e3代表123×10的三次方。
实型变量分为单精度(float)和双精......
成功程序员的七个秘密(2006-09-03 14:51:00)
摘要:7项使你成为开发者社区出色成员的技巧
1.为人的需求编码
计算机界的一个最普遍的误会是认为原始码是为计算机服务。计算机是工作在低级的二进制代码上,是在一系列的难以理解的1或0或者十六进制数字之上,而不是我们敲入的结构化高级计算机语言。
这些语言被开发出来的目的是为了帮助我们程序员。
在实践中,为人的需求编码通常意味着首先要有清楚透明的结构和思路,其次才是效率和速度。
2.经常的好的注释
注释是为人的需求编码的一种极端的语言元素例子。大多数编译器都会将注释与可执行程序分离开来。
注释的目的就是要告诉你(或者其他将来的开发着)程序的功能是什么。
把这些写进注释 - 并且避免只是简单重新叙述代码。
好的注释:
Disable button to prevent its activation
糟糕的注释:
Set cmd = False
一个很好的检验注释的标准是:如果只有注解没有去掉,有人能够知道你的程序的作用吗?
3.良好代码布局增加易读性
正如一位作家将一本书分成章和段落以帮助阅读,因此开发者考虑代码如何布局如何能能增强代码的易读性也是非常重要的。
特别在任何语句结构块中 (如
IF.
.
THEN.
.
.
ELSE语句快) 和任何循环结构(如
WHILE.
.
.
END WHILE)
代码应该缩进以便于很容易分清楚哪里是开始哪里是结束。
4.预测并处理 那意想不到的事情
你打开一个文件之前,确定文件为当前文件。你将焦点设定为控件之前,确定控制是看得见的并且可用。设法找出在什么条件下使你的代码失效,并在你的程序崩溃之前测试它。
5.命名变量增强易读性
有许多策略进行变量命名。首要原则是一致性和尽可能的能通过命名变量提供足够的信息。如果你命名一个变量为nMonth,你提供给程序员的信息是这个变量将被设计用来存储什么内容。
我自己倾向于使用匈牙利的命名风格 - 但是无论你使用哪一种风格,一致性是最主要的。
6.使你的方法和过程保持简洁
一个方法或者过程理想状况下应该只做一件事情。在我的经验方面,最大的误区是,一个过程通常被设计来完成许多的不同操作。
应......