当前位置:编程学习 > VB >>

求大神解释一下代码

--------------------编程问答-------------------- 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的参数
--------------------编程问答-------------------- VB6保留了一个非常落后和让人无语的语法“默认属性”:
比如
tb = textBox1
事实上它表示
tb = textBox1.Text
尤其是当你没有指明tb的类型的时候。

你必须用 Set tb = textBox1,才能让tb代表这个文本框本身。 --------------------编程问答-------------------- 默认属性是使用概率最高的常用属性,非常人性化。你完全可以不用。

VB 中的等号,大多数情况用于赋值,也就是值传递(当然,也有人诟病,逻辑判断表达式中也用单等号)。初始化对象时,需要 Set 关键词是“雷打不动”的。只要熟悉 VB 的语法惯例,一切都顺理成章。

--------------------编程问答--------------------
引用 4 楼 of123 的回复:
默认属性是使用概率最高的常用属性,非常人性化。你完全可以不用。

VB 中的等号,大多数情况用于赋值,也就是值传递(当然,也有人诟病,逻辑判断表达式中也用单等号)。初始化对象时,需要 Set 关键词是“雷打不动”的。只要熟悉 VB 的语法惯例,一切都顺理成章。


比如说,我定义了一个labelTextBox的用户控件,你能在不看文档的情况下告诉我是labelCaption是默认属性还是textBoxText是默认属性?你觉得是后者?偏偏写这个控件的人用的是前者。

“人性化”看你从什么角度看,对于那些几乎很少写程序的计算机的高级用户,所谓人性化可以说就是少敲几个字母,因为他们解决的问题规模很小,可是职业程序员,他们需要编写健壮的代码,任何给程序引入不确定因素的,故意混淆程序语义的东西非但不人性化,而且是程序员的天敌。 --------------------编程问答--------------------
引用 5 楼 caozhy 的回复:
……

熟练掌握一门编程语言就包括要熟悉它的语言特性。
新人随便就能正确使用的语言那叫自然语言,不是编程语言。
相比而言,C 语言里 void*、for 中的 i++ 和 ++i 不更坑人,怎么不见你说“程序员的天敌”? --------------------编程问答--------------------
引用 5 楼 caozhy 的回复:
……

而且想出 labelTextBox、labelCaption、textBoxText 这种命名的存心坑人。 --------------------编程问答--------------------
引用 6 楼 Tiger_Zhao 的回复:
引用 5 楼 caozhy 的回复:……
熟练掌握一门编程语言就包括要熟悉它的语言特性。
新人随便就能正确使用的语言那叫自然语言,不是编程语言。
相比而言,C 语言里 void*、for 中的 i++ 和 ++i 不更坑人,怎么不见你说“程序员的天敌”?


没错,C/C++糟糕程度比VB更甚。 --------------------编程问答--------------------
引用 6 楼 Tiger_Zhao 的回复:
引用 5 楼 caozhy 的回复:……
熟练掌握一门编程语言就包括要熟悉它的语言特性。
新人随便就能正确使用的语言那叫自然语言,不是编程语言。
相比而言,C 语言里 void*、for 中的 i++ 和 ++i 不更坑人,怎么不见你说“程序员的天敌”?

像go这样的语言,就明确不支持前置自增自减运算。而现代编程语言,更是摈弃了指针这个极其丑陋的东西。顺便纠正下的是for和i++ ++i没有什么关系。 --------------------编程问答-------------------- “人性化”看你从什么角度看,对于那些几乎很少写程序的计算机的高级用户,所谓人性化可以说就是少敲几个字母,因为他们解决的问题规模很小,可是职业程序员,他们需要编写健壮的代码,任何给程序引入不确定因素的,故意混淆程序语义的东西非但不人性化,而且是程序员的天敌。 

====================================================

不是有人说 VB 不过是玩具吗?“编写健壮的代码”的“职业程序员”不是不屑于使用这样的玩具的吗? --------------------编程问答-------------------- 那么既然要用 VB 除了享受“优点”也得忍受“缺点”,抱怨是没用的,微软不会改造了。
i++ ++i 的确和 for 没有直接关系,但出问题通常是在用到循环的时候。 --------------------编程问答-------------------- 我倒觉得,VB 的语法惯例是完整的。

至于其他人自定义控件去违反这个惯例,怕是怪不到微软的头上。要说职业,我觉得写 VB 的这一批软件程序员更职业。至少不比对着他们的作品吹毛求疵的一些人差。除非那人写出个更好的语言来也让我们易做图。



--------------------编程问答--------------------
引用 12 楼 of123 的回复:
我倒觉得,VB 的语法惯例是完整的。

至于其他人自定义控件去违反这个惯例,怕是怪不到微软的头上。要说职业,我觉得写 VB 的这一批软件程序员更职业。至少不比对着他们的作品吹毛求疵的一些人差。除非那人写出个更好的语言来也让我们易做图。

赞一下
五星就是五星 --------------------编程问答--------------------
引用 3 楼 caozhy 的回复:
VB6保留了一个非常落后和让人无语的语法“默认属性”:
比如
tb = textBox1
事实上它表示
tb = textBox1.Text
尤其是当你没有指明tb的类型的时候。

你必须用 Set tb = textBox1,才能让tb代表这个文本框本身。


给1个object赋值难道你不用Set可以????
难道你a = createobject("....") 吗????
我觉得VB很精明啊,你不用set他自动就用默认的属性,这样很方便啊 --------------------编程问答-------------------- 我倒是觉得,能活下来的都一定是有优势的,不然它早该被市场所淘汰了

而且,我个人认为,一件事物能否活下来,能否发展壮大,与它本身个别地方的强大其实不一定有关系,有关系的是它能否适应环境,环境是否适合它存活.

老虎很强大吧!尖牙,利爪,力量,战斗力,全都比起食草动物强.

但是现在老虎的数量多,还是食草动物比如羊啊牛啊鹿啊什么的数量多?

说回VB6,哈哈.

这VB6是连他的老爹都不管了的孩子(微软停止技术支持了,可以这么说吧?),缺点太多啦!找过VB6的麻烦的人是很清楚的,用过VB6的人也是很清楚的,可它目前却仍然在残酷的世界中活着,我认为这应该是表示VB6在目前的市场中所表示出来的优点多于缺点,哇哈哈.

不过不清楚以后的市场环境里会不会让VB6的缺点多于优点呢?咱们慢慢看着吧,由市场选择,由用户选择! --------------------编程问答-------------------- 我昨天试了下我的播放器软件(VB6编写的),在 Windows 8 企业版下运行非常流畅! --------------------编程问答-------------------- 就是 Windows 8 的窗口太丑陋,居然不是园角的窗口,是方的的,这一点比不上 Windows 7 的窗口。 --------------------编程问答-------------------- 除
补充:VB ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,