sub new() 运行时会先对变量进行赋值?

millercn 2008-12-26 02:46:06
书上说:"sub new 过程在主应用程序访问模块中的过程或变量之前运行",可是我F8单步测试的时候,却出现了一点点小问题。

程序先到sub new(),然后跳出 new方法,开始对变量进行赋值。那么也就不是在"变量之前运行"了。


Module Module1

Dim str As String = "Start"

Sub New()

End Sub

Sub main(ByVal args() As String)

For i As Integer = 0 To UBound(args)
Console.WriteLine(args(i))
Next

str = test2.str

Console.WriteLine(str)
End Sub

End Module

Module test2
Public str As String = "Start in test Module"

Sub New()
Console.WriteLine("Begin test2 module")
str = "End"
End Sub

End Module
...全文
173 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
millercn 2008-12-31
  • 打赏
  • 举报
回复
感谢大家。

现在我知道,对一个类进行实例化,需要1、运行sub NEW;2、对变量进行赋值。
astromercy 2008-12-28
  • 打赏
  • 举报
回复
楼主真有意思,测试得再好,也是为了应用,多关注下应用吧,测试不是终点.投用...
ijwsoft 2008-12-28
  • 打赏
  • 举报
回复
up,楼主继续努力!
周公 2008-12-27
  • 打赏
  • 举报
回复
在构造函数中会对类中的非静态变量赋初值,如果没有明确赋值就会对数值类型的会赋值为0,对bool类型的会赋值为false,对引用类型赋值为null。
laidon 2008-12-27
  • 打赏
  • 举报
回复
呵呵,开始对变量进行赋值也是new的其中的一步而已,没有跳出,只是继续
vrhero 2008-12-27
  • 打赏
  • 举报
回复
1.“程序到sub new(),然后跳出 new方法”...你都看到了,这难道不是“之前”?“跳出”是什么意思懂吗?跳出就不会回去了,你再单步执行下去看看它回不回new方法...
2.构造函数在创建对象实例时初始化新对象的数据成员...所以“开始对变量进行赋值”...

你看的书有问题,明明很简单的构造函数非要讲得这么不清不楚...换本书看吧...

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧