Beispiel #1
0
        static void RunTests_Class()
        {
            Console.WriteLine("---------Reference-------------");
            Stopwatch w = new Stopwatch();

            var v1 = new cVector(1, 1);
            var v2 = new cVector(2, 2);

            w.Start();
            // sVector v3 = Add(v1,v2);
            var v3 = v1 + v2;

            w.Stop();
            Console.WriteLine($"Time elapsed = {w.ElapsedTicks} ticks");
            Console.WriteLine($"{v1} + {v2} = {v3}");

            // copy by reference, same object
            var v4 = v3;

            Console.WriteLine($"v3 & v4 are same: {Object.ReferenceEquals(v3,v4)}");
            v4.X = 5;
            Console.WriteLine($"Modified v4. {v3} == {v4}");

            // hash codes - dictionary - maybe internally for gc
            Console.WriteLine($"Hashcodes : v1:{v1.GetHashCode()}, v2: {v2.GetHashCode()}," +
                              $"v3:{v3.GetHashCode()}, v4: {v4.GetHashCode()}");
        }
Beispiel #2
0
        public int CompareTo(object obj)
        {
            if (obj == null)
            {
                return(1);
            }

            cVector v2 = obj as cVector;

            if (v2 != null)
            {
                return(this.Magnitude.CompareTo(v2.Magnitude));
            }
            else
            {
                throw new ArgumentException("Object is not a cVector");
            }
        }