protected override CType __GetCType(IIdentifierTypeResolver Resolver)
            {
                var LeftCType        = LeftExpression.GetCachedCType(Resolver);
                var CUnionStructType = LeftCType.GetCUnionStructType();

                if (CUnionStructType != null)
                {
                    return(CUnionStructType.GetFieldByName(FieldName).CType);
                }
                else
                {
                    throw (new NotImplementedException(String.Format("Invalid CType '{0}', {1}", LeftCType, LeftCType.GetType())));
                }
            }