Why do I need to use Serial.available() before i'm reading the byte?

why can’t I just Serial.read() without checking if there is an incoming byte?
For example:

int led=13;

void setup(){
Serial.begin(9600);
pinMode(led,OUTPUT);
}

void loop(){
if (Serial.read()==‘1’){
digitalWrite(led,HIGH);
delay(1000);
digitalWrite(led,LOW);
delay(1000);
}
}

Is there some kind of a problem with that? and also Serial.read() can be equal null, right?
if so why do i need the if(Serial.available())???

Another question: when i’m sending a byte to the arduino from for example C# windows form application, how many milliseconds it will take for the arduino to receive that byte?

and will the byte stay there and only disappear when i’ll read it? or it may happen before?

and if for example i’m sending 2 characters the the Serial.available() will be equal to 2, right?
or the characters are sent separately and the Serial.available() will be equal to 1??

thank you for helping

If that's all you're doing, then you don't need Serial.available.

Another question: when i'm sending a byte to the arduino from for example C# windows form application, how many milliseconds it will take for the arduino to receive that byte?

Who knows? It depends on many things.

bazingabazing: Is there some kind of a problem with that? and also Serial.read() can be equal null, right? if so why do i need the if(Serial.available())???

You don't need. The return value of Serial.read() is an integer. If no value is available, you will get the numeric value -1 as a result, if you read the value into an int. If you read the value into a char, you will get the character with the ASCII-Code 255.

bazingabazing: Another question: when i'm sending a byte to the arduino from for example C# windows form application, how many milliseconds it will take for the arduino to receive that byte?

It depends on your PC, operating system, USB-Serial driver and driver settings. And it depends on the baud rate.

Any suggestions about the baud rate you'd like to use?

bazingabazing: and will the byte stay there and only disappear when i'll read it? or it may happen before?

and if for example i'm sending 2 characters the the Serial.available() will be equal to 2, right?

Yes. The Arduino Serial input buffer can receive and hold a maximum of 63 characters at any time. So if you don't read the Serial input, the characters will be stored in the input buffer, up to 63 chars. If more chars are received while you are not reading from Serial, additional chars will be lost as they cannot be stuffed into the Serial input buffer.

The Thread serial input basics may be of interest.

...R