Example #1
0
        public override int GetHashCode()
        {
#if NETCORE
            return(base.GetHashCode());
#else
            int ret = ctorInfo == null ? 13 : (ctorInfo.GetHashCode() << 16);
            // argument order-dependent
            if (ctorArgs != null)
            {
                for (int i = 0; i < ctorArgs.Count; i++)
                {
                    ret += ret ^ 7 + ctorArgs [i].GetHashCode() << (i * 4);
                }
            }
            // argument order-independent
            if (namedArgs != null)
            {
                for (int i = 0; i < namedArgs.Count; i++)
                {
                    ret += (namedArgs [i].GetHashCode() << 5);
                }
            }
            return(ret);
#endif
        }
Example #2
0
        public override int GetHashCode()
        {
            int ret = ctorInfo.GetHashCode() << 16;

            // argument order-dependent
            for (int i = 0; i < ctorArgs.Count; i++)
            {
                ret += ret ^ 7 + ctorArgs [i].GetHashCode() << (i * 4);
            }
            // argument order-independent
            for (int i = 0; i < namedArgs.Count; i++)
            {
                ret += (namedArgs [i].GetHashCode() << 5);
            }
            return(ret);
        }