查看一些旧的 VB.Net 代码,我注意到一种奇怪的模式,让我摸不着头脑。
Dim objMyObject As Namespace.Child.ChildType = Nothing
objMyObject = New Namespace.Child.ChildType
(维度和分配之间没有附加代码。)
似乎首选的样式是在一行上执行这两项操作,或者跳过 = Nothing
。如下:
Dim objMyObject As Namespace.Child.ChildType = New Namespace.Child.ChildType
或者
Dim objMyObject As Namespace.Child.ChildType
objMyObject = New Namespace.Child.ChildType
或者,按照@helrich的建议
Dim objMyObject As New Namespace.Child.ChildType
这样做有什么特别的值(value)吗?或者这是原始程序员习惯 VB6 做事方式的一个实例?
<小时/>在 VB6 中,在一行上对变量进行尺寸标注和实例化被认为是有问题的,因为当访问变量时,它会重新运行实例化(如果需要)——实际上,以这种方式标注尺寸的变量永远无法测试为 Nothing,因为将根据需要创建新实例。但是,VB.Net 不保留此约定。
最佳答案
不,这毫无意义。 CLR 已经提供了变量初始化为 Nothing 的硬保证。
否则完全无害,抖动优化器将完全删除分配的代码。因此,如果原作者更喜欢这种风格,那也没关系。也许他以前是一名 C# 程序员,不理解该语言中的明确赋值规则。 VB.NET 也进行一些检查,但没有那么严格。请检查这是否是您也应该遵循的团队标准,希望不是。
关于vb.net - 使用 Nothing 实例化变量,然后分配一个 New 对象实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19914256/