/// <summary>
        /// Gets element type of this type if this type is an array, pointer or reference. Returns
        /// <see langword="null"/> otherwise.
        /// </summary>
        public TypeIdentifier GetElementType()
        {
            if (TypeSpecifiers.Count == 0)
            {
                return(null);
            }

            return(new TypeIdentifier(Namespace, new List <string>(m_nestedTypeName), TypeSpecifiers.Take(TypeSpecifiers.Count - 1).ToList(), CloneGenericArguments(m_genericArguments), AssemblyName));
        }