ICANN认证国际域名顶级注册机构
网站建设,域名注册,空间租用,软件销售,广告设计 域名注册,空间租用, 网站建设,东莞网页设计,域名注册,网站推广,网站开发,网页设计 网站推广,,百度推广,新浪推广,雅虎推广,网易推广 标志设计,画册设计,包装设计,VI策划,企业形象顾问 连邦软件加盟店,提供销遥行,管家婆,速达,用友ERP,诺顿等软件报价及销售 建站必读 腾达网络,上网帮助中心, 腾达为东莞等地,提供网站建设,网站推广,广告设计,软件销售等优质服务!
建站必读


 
 
当前位置:首页 -> 建站必读 -> .NET技术
结构 Structure
如果对类比较熟悉,先看看结构和类的异同点:



结构和类

Visual Basic .NET 统一了结构和类的语法,结果就是两个实体都支持大多数的相同功能。但是,在结构和类之间还有着重要的区别。



相同点

结构和类在以下方面相同:



两者都属于“容器”类型,表示它们可以包含其他类型作为成员。

两者都具有成员,成员可以包括构造函数、方法、属性、字段、常数、枚举、事件和事件处理程序。

两者的成员都具有单独的可访问性。例如,一个成员可以声明为 Public,而另一个可以声明为 Private。

都可实现接口。

都有共享的构造函数,有或没有参数。

两者都可以公开默认属性,只要该属性至少带有一个参数。

两者都可以声明和引发事件,而且两者都可以声明委托。

不同点

结构和类在以下方面有所不同:



结构是值类型,而类是引用类型。

结构使用堆栈分配,类使用堆分配。

所有的结构成员都默认为 Public;类变量和常量默认为 Private,而其他的类成员默认为 Public。类成员的这一行为提供与 Visual Basic 6.0 默认值系统的兼容。

结构必须至少具有一个非共享变量或事件成员;而类可以完全是空的。

结构成员不能声明为 Protected,类成员可以。

只有 Shared Sub 结构过程才能处理事件,并且只能使用 AddHandler 语句;而任何类过程都可以处理事件,并且可以使用 Handles 关键字或 AddHandler 语句。

结构变量声明不能指定初始值、New 关键字或数组初始大小,类变量声明可以。

结构从 ValueType 类隐式继承,不能从其他类型继承,类可以从除 ValueType 之外的其他任何类继承。

结构是不可继承的;而类可以继承。

结构从不终止,所以公共语言运行库 (CLR) 从不在任何结构上调用 Finalize 方法,类可由垃圾回收器终止,当检测到没有剩下的活动引用时,垃圾回收器将在类上调用 Finalize。

结构不需要构造函数;而类需要。

结构仅当没有参数时可以有非共享的构造函数;类无论有没有参数都可以。

每一个结构都有不带参数的隐式公共构造函数。此构造函数将结构的所有数据成员初始化为默认值。不能重定义此行为。



实例和变量

由于结构是值类型,每个结构变量都永久地绑定到一个单独的结构实例。但类是引用类型,对象变量可引用各种类实例。此区别在下列方面影响结构和类的使用:



结构变量使用结构的无参数构造函数隐式包含成员初始化。因此,Dim S As Struct1 等效于 Dim S As Struct1 = New Struct1()。

当将一个结构变量赋给另一个,或传递一个结构实例到过程参数,所有变量成员的当前值都被复制到新结构中。当将一个对象变量赋给另一个,或传递一个对象变量到过程,仅有引用指针被复制。

可以将值 Nothing 赋给结构变量,但实例继续保持与变量的关联。尽管赋值重新初始化了变量成员,仍可以调用其方法并访问其数据成员。相比之下,如果将对象变量设为 Nothing,将其与任何类实例断开关联,在给它赋予另一个实例前,不能通过变量访问其他成员。

对象变量可以有在不同时间赋给它的不同的类实例,几个对象变量可以同时引用同一个类实例。当通过指向同一实例的另一个变量访问时,更改的类成员的值会影响这些成员。但是,结构成员独立存在于其自身实例中。更改其值不会在其他任何结构变量中反映出来,即使是在同一 Structure 声明的其他实例中。

两个结构的等效性测试必须在成员对成员的测试中进行。两个对象变量可使用 Equals 方法进行比较。Equals 指示两个变量是否指向同一实例。

Structure 语句

Structure 语句只能在模块、命名空间或文件级出现。这就是说可以在源文件或模块、接口或类内部声明结构,但不能在过程内部进行声明。也可以在一个结构中定义另一个结构,但不能通过外部结构访问内部结构的成员。而是必须声明一个内部结构的数据类型变量。



可以从声明结构的模块或类内的任何位置访问它们。默认情况下,结构为 Friend。若要更详细地指定可访问性,请在 Structure 语句中包括 Public、Friend、Protected Friend 或 Private。



必须声明结构的每一数据成员。这意味着 variabledeclarations 部分中的每一语句必须使用 Dim、Friend、Private 或 Public。由于无法从结构中继承,因此结构成员不能是 Protected 或 Protected Friend。但结构本身可以是 Protected 或 Protected Friend。



如果 Option Strict 是 On,则在每一个成员声明中还必须包含 As 子句。用 Dim 声明的成员默认为 Public 访问,未用 As 子句声明的成员默认为 Object 数据类型。



在结构中必须至少定义一个非共享变量或事件。在结构中不能只包含常数、属性和过程,即使某些成员是非共享的。



结构成员的范围是整个结构。



不能将结构的任何数据成员的值初始化成其声明的一部分。必须通过结构上参数化的构造函数初始化数据成员,或者在创建了该结构的实例后将值赋给该成员。



结构支持的
 
 
本站关键词:
|东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司||东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司||东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司||东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司||东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司||东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司||东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司||东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司||东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司||东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司||东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司||东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司||东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司||东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司|
域名注册 | 虚拟主机 | 网站建设 | 网站推广 | 广告设计 | 帮助中心 | 软件中心 | 关于腾达
东莞市腾达信息工程有限公司      本站网络实名: 东莞网站建设
地址:东莞市新城市中心区第一国际B座610   邮编:523007
电话:0769-22026071 22026072 传真:0769-22026076 24小时服务热线:13712032014
© 2002~2005 腾达网络   版权所有