Dim X为New Y vs. Dim X为Y = New Y()新问题: 对此主题的后续问题: Dim X as New Y vs. Dim X as Y = New Y()
我正在运行VS2015(VB 14)有人可以帮助我吗?鉴于此课程:
Public Class Form1
Dim test3 As New Example
Dim test4 = New Example
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim test1 As New Example
Dim test2 = New Example
test1.Mylist.Add("1")
test2.Mylist.Add("2")
End Sub
End Class
Class Example
Public Sub New()
Mylist = New List(Of String)
End Sub
Public Mylist As List(Of String)
End Class
Test4属于对象类型而非预期的示例。
谢谢,-TD
答案 0 :(得分:2)
你的困惑是可以理解的,是语言支持的语法糖的结果。您正在利用第一个示例中的Local Type Inference (Visual Basic)。这一点糖仅适用于程序级别,这是> df_split <- split(df, f=df$CHR)
# then I generate a function, involving "cut" function
> bins <- function(df){
lower <- min(df$POS)
upper <- max(df$POS)
cut(df$POS, seq(lower,upper, 10))
}
# finally i used lapply, incorporating my personalizad "cut" function
> bin_1 <- lapply(df_split, bins)
和test1
属于test2
类型的原因。
在你的第二个例子中:
Example
变量Dim test1 As New Example
Dim test2 = New Example
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
test1.Mylist.Add("1")
test2.Mylist.Add("2")
End Sub
在类级别声明,因此不适用于类型推断。因此,如声明的那样,它将是Object类型。代码将转换为类似于以下内容的代码。
test2
编辑:我在输入这个答案时编辑了原始帖子,但推理仍然相同。因此,我不会修改此内容以反映原始邮政编码示例的更改。