Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Problems in declaring a variable as Byte in VB.NET

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?

like image 789
SpongeBob SquarePants Avatar asked Feb 19 '11 03:02

SpongeBob SquarePants


2 Answers

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.

like image 116
dbasnett Avatar answered Oct 18 '22 09:10

dbasnett


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:

  1. You can't assign a single object to an array. (This is always true.)
  2. Byte doesn't have a constructor. (This is only true in this particular case.)
like image 34
user541686 Avatar answered Oct 18 '22 09:10

user541686