BitMiracle.LibTiff.Classic.FieldValue.GetBytes C# (CSharp) Méthode

GetBytes() public méthode

Retrieves value converted to byte array.

If value is byte array then it retrieved unaltered.

If value is array of short, ushort, int, uint, float or double values then this array is converted to byte array

If value is a string then it gets converted to byte array using Latin1 encoding encoder.

If value is of any other type then null is returned.

public GetBytes ( ) : byte[]
Résultat byte[]
        public byte[] GetBytes()
        {
            if (m_value == null)
                return null;

            Type t = m_value.GetType();
            if (t.IsArray)
            {
                if (m_value is byte[])
                    return m_value as byte[];
                else if (m_value is short[])
                {
                    short[] temp = m_value as short[];
                    byte[] result = new byte[temp.Length * sizeof(short)];
                    Buffer.BlockCopy(temp, 0, result, 0, result.Length);
                    return result;
                }
                else if (m_value is ushort[])
                {
                    ushort[] temp = m_value as ushort[];
                    byte[] result = new byte[temp.Length * sizeof(ushort)];
                    Buffer.BlockCopy(temp, 0, result, 0, result.Length);
                    return result;
                }
                else if (m_value is int[])
                {
                    int[] temp = m_value as int[];
                    byte[] result = new byte[temp.Length * sizeof(int)];
                    Buffer.BlockCopy(temp, 0, result, 0, result.Length);
                    return result;
                }
                else if (m_value is uint[])
                {
                    uint[] temp = m_value as uint[];
                    byte[] result = new byte[temp.Length * sizeof(uint)];
                    Buffer.BlockCopy(temp, 0, result, 0, result.Length);
                    return result;
                }
                else if (m_value is float[])
                {
                    float[] temp = m_value as float[];
                    byte[] result = new byte[temp.Length * sizeof(float)];
                    Buffer.BlockCopy(temp, 0, result, 0, result.Length);
                    return result;
                }
                else if (m_value is double[])
                {
                    double[] temp = m_value as double[];
                    byte[] result = new byte[temp.Length * sizeof(double)];
                    Buffer.BlockCopy(temp, 0, result, 0, result.Length);
                    return result;
                }
            }
            else if (m_value is string)
            {
                return Tiff.Latin1Encoding.GetBytes(m_value as string);
            }
            else if (m_value is int)
            {
                return BitConverter.GetBytes((int)m_value);
            }

            return null;
        }