Reputation: 1055
I'm trying out a program which I found on the net. Why is it necessary to put to curly braces at the end of the statement? It gives an error: "Byte has no constructors".
Dim data As Byte() = New Byte(1023) {}
I can't put the code like this either, it produces the error "byte cannot be a 1-dimensional array".
Dim arr As Byte() = New Byte()
Can you explain to me why this is happening?
Upvotes: 6
Views: 31974
Reputation: 11773
Some flavors
Dim b() As Byte 'b is nothing
Dim b1(1023) As Byte 'b1 is an array of 1024 elements, all equal to 0
Dim b2() As Byte = New Byte() {85, 99, 1, 255} 'four elements
b = New Byte() {} 'zero element array
b = New Byte() {1, 2} 'two element array
Inference is generally a bad idea.
Upvotes: 15
Reputation: 210352
You need curly braces, because if you don't put them, it means you're trying to call a constructor for a single object -- which is an error for different reasons:
Byte
doesn't have a constructor. (This is only true in this particular case.)Upvotes: 8