In C#, an array stores multiple values of the same data type. Therefore, a Byte Array (byte[]) can store only byte values. The size of the array is defined when it is created. Each element in a byte array occupies 1 byte (8 bits) of memory and can store values from 0 to 255 because byte in C# is an unsigned 8-bit integer.
Example:
byte[] arr = new byte[4];
arr[0] = 57;
arr[1] = 48;
arr[2] = 0;
arr[3] = 0;
Each element of byte array can store values between 0-255 as per byte type range. These values are internally stored in binary representation.
A byte[] (byte array) is useful in C# whenever data must be handled in its raw binary form instead of as normal types like int, string, or objects. Each element stores 1 byte (8 bits), so a byte array becomes a container for binary data.
Byte Array Usefulness in Programs
1. Reading and Writing Files
Files are fundamentally stored as bytes.
Example:
File.WriteAllBytes("copy.jpg", data);
Use cases:
- Images
- PDFs
- Videos
- Documents
2. Network Communication
Data sent over the internet is transmitted as bytes.
Example:
networkStream.Write(message);
Used in:
- HTTP
- TCP/IP
- Web APIs
- Socket programming
3. Converting Primitive Types to Binary Data
BitConverter converts numeric values into bytes.
Example:
byte[] bytes = BitConverter.GetBytes(number); // Output: 57 48 0 0
And convert back:
int value = BitConverter.ToInt32(bytes, 0);
Useful for:
- Serialization
- Binary storage
- Protocol communication
4. Image Processing
Images are manipulated as byte arrays.
Example:
byte[] imageBytes = File.ReadAllBytes("image.png");
Applications:
- Resize images
- Compress images
- Upload/download
5. Encryption and Hashing
Cryptography APIs often operate on bytes.
Example:
byte[] data = Encoding.UTF8.GetBytes("password");
Used for:
- Encryption
- Decryption
- Hash generation
6. Serialization / Data Transfer
Objects are often converted to bytes for storage or transmission.
Example flow:
Object 🠊 Serialize 🠊 byte[] 🠊 Save / Send
7. Working with Memory Efficiently
Bytes consume little memory.
Useful for:
- Buffers
- Caching
- Streaming large data
Simple mental model
The normal data of different types is converted into raw bytes.
| Normal data | Raw bytes |
| 12345 | [57,48,0,0] |
| "ABC" | [65,66,67] |
| Image | [255,216,...] |
So a byte[] acts like a universal transport/storage format for data inside and outside a C# program.
No comments:
Post a Comment