1、参考MSDN: Set 语句 将对象引用赋给变量或属性。语法Set objectvar = {[New] objectexpression | Nothing}Set 语句的语法包含下面部分:部分 描述 objectvar 必需的。变量或属性的名称,遵循标准变量命名约定。 New 可选的。通常在声明时使用 New,以便可以隐式创建对象。如果 New 与 Set 一起使用,则将创建该类的一个新实例。如果 objectvar 包含了一个对象引用,则在赋新值时释放该引用。不能使用 New 关键字来创建任何内部数据类型的新实例,也不能创建从属对象。 objectexpression 必需的。由对象名,所声明的相同对象类型的其它变量,或者返回相同对象类型的函数或方法所组成的表达式。 Nothing 可选的。断绝 objectvar 与任何指定对象的关联。若没有其它变量指向 objectvar 原来所引用的对象,将其赋为 Nothing 会释放该对象所关联的所有系统及内存资源。 说明为确保合法,objectvar 必须是与所赋对象相一致的对象类型。Dim、Private、Public、ReDim以及 Static 语句都只声明了引用对象的变量。在用 Set 语句将变量赋为特定对象之前,该变量并没有引用任何实际的对象。下面的示例说明了如何使用 Dim 来声明 Form1 类型的数组。Form1 实际上还没有实例。然后使用 Set 将新创建的 Form1 的实例的引用赋给 myChildForms 变量。在 MDI 应用程序中可以使用这些代码来创建子窗体。Dim myChildForms(1 to 4) As Form1 Set myChildForms(1) = New Form1 Set myChildForms(2) = New Form1 Set myChildForms(3) = New Form1 Set myChildForms(4) = New Form1通常,当使用 Set 将一个对象引用赋给变量时,并不是为该变量创建该对象的一份副本,而是创建该对象的一个引用。可以有多个对象变量引用同一个对象。因为这些变量只是该对象的引用,而不是对象的副本,因此对该对象的任何改动都会反应到所有引用该对象的变量。不过,如果在 Set 语句中使用 New 关键字,那么实际上就会新建一个该对象的实例2、调用对象HMIRuntime的方法Trace。通过这个Trace方法传输参数(可以通过VB的对象浏览器查看)。
set 用于为对象变量或者控件变量赋值 "Value:" &sysYear.Read(1)&vbCrLf 将"Value:" 、sysYear.Read(1)、vbCrLf连接成一个字串,作为trace的参数
Set 语句 将对象引用赋给变量或属性。语法Set objectvar = {[New] objectexpression | Nothing}Set 语句的语法包含下面部分:部分 描述
objectvar 必需的。变量或属性的名称,遵循标准变量命名约定。
New 可选的。通常在声明时使用 New,以便可以隐式创建对象。如果 New 与 Set 一起使用,则将创建该类的一个新实例。如果 objectvar 包含了一个对象引用,则在赋新值时释放该引用。不能使用 New 关键字来创建任何内部数据类型的新实例,也不能创建从属对象。
objectexpression 必需的。由对象名,所声明的相同对象类型的其它变量,或者返回相同对象类型的函数或方法所组成的表达式。
Nothing 可选的。断绝 objectvar 与任何指定对象的关联。若没有其它变量指向 objectvar 原来所引用的对象,将其赋为 Nothing 会释放该对象所关联的所有系统及内存资源。
说明为确保合法,objectvar 必须是与所赋对象相一致的对象类型。Dim、Private、Public、ReDim以及 Static 语句都只声明了引用对象的变量。在用 Set 语句将变量赋为特定对象之前,该变量并没有引用任何实际的对象。下面的示例说明了如何使用 Dim 来声明 Form1 类型的数组。Form1 实际上还没有实例。然后使用 Set 将新创建的 Form1 的实例的引用赋给 myChildForms 变量。在 MDI 应用程序中可以使用这些代码来创建子窗体。Dim myChildForms(1 to 4) As Form1
Set myChildForms(1) = New Form1
Set myChildForms(2) = New Form1
Set myChildForms(3) = New Form1
Set myChildForms(4) = New Form1通常,当使用 Set 将一个对象引用赋给变量时,并不是为该变量创建该对象的一份副本,而是创建该对象的一个引用。可以有多个对象变量引用同一个对象。因为这些变量只是该对象的引用,而不是对象的副本,因此对该对象的任何改动都会反应到所有引用该对象的变量。不过,如果在 Set 语句中使用 New 关键字,那么实际上就会新建一个该对象的实例2、调用对象HMIRuntime的方法Trace。通过这个Trace方法传输参数(可以通过VB的对象浏览器查看)。
"Value:" &sysYear.Read(1)&vbCrLf
将"Value:" 、sysYear.Read(1)、vbCrLf连接成一个字串,作为trace的参数
比如
tb = textBox1
事实上它表示
tb = textBox1.Text
尤其是当你没有指明tb的类型的时候。你必须用 Set tb = textBox1,才能让tb代表这个文本框本身。
比如说,我定义了一个labelTextBox的用户控件,你能在不看文档的情况下告诉我是labelCaption是默认属性还是textBoxText是默认属性?你觉得是后者?偏偏写这个控件的人用的是前者。“人性化”看你从什么角度看,对于那些几乎很少写程序的计算机的高级用户,所谓人性化可以说就是少敲几个字母,因为他们解决的问题规模很小,可是职业程序员,他们需要编写健壮的代码,任何给程序引入不确定因素的,故意混淆程序语义的东西非但不人性化,而且是程序员的天敌。
新人随便就能正确使用的语言那叫自然语言,不是编程语言。
相比而言,C 语言里 void*、for 中的 i++ 和 ++i 不更坑人,怎么不见你说“程序员的天敌”?
没错,C/C++糟糕程度比VB更甚。
i++ ++i 的确和 for 没有直接关系,但出问题通常是在用到循环的时候。
给1个object赋值难道你不用Set可以????
难道你a = createobject("....") 吗????
我觉得VB很精明啊,你不用set他自动就用默认的属性,这样很方便啊