Data Types C#

using System;
using System.IO;
public class Utils
{
    public static byte[] PackString(String Source)
    {
        byte[] Value = StringToByteArray(Source);
        Int32 ILength = Value.Length;
        byte[] Result = new byte[4 + ILength];
        Result[0] = (byte)((ILength >> 0) & 0xFF);
        Result[1] = (byte)((ILength >> 8) & 0xFF);
        Result[2] = (byte)((ILength >> 16) & 0xFF);
        Result[3] = (byte)((ILength >> 24) & 0xFF);
        for (Int32 i = 0; i < ILength; i++)
            Result[4 + i] = Value[i];
        return Result;
    }
    public static UInt32 UnpackUInt32(byte[] Value)
    {
        return
            (UInt32)(Value[0] << 0) +
            (UInt32)(Value[1] << 8) +
            (UInt32)(Value[2] << 16) +
            (UInt32)(Value[3] << 24);
    }
    public static byte[] StringToByteArray(String Source)
    {
        char[] CSource = Source.ToCharArray();
        byte[] Result = new byte[CSource.Length];
        for (Int32 i = 0; i < CSource.Length; i++)
            Result[i] = Convert.ToByte(CSource[i]);
        return Result;
    }
}