Exemplo n.º 1
0
        /// <summary>
        /// 현재 인스턴스를 동일한 형식의 다른 개체와 비교합니다.
        /// </summary>
        /// <returns>
        /// 비교되는 개체의 상대 순서를 나타내는 부호 있는 32비트 정수입니다. 반환 값에는 다음과 같은 의미가 있습니다. 값 의미 0보다 작음 이 인스턴스는 <paramref name="obj" />보다 작습니다. 0 이 인스턴스는 <paramref name="obj" />와 같습니다. 0보다 큼 이 인스턴스는 <paramref name="obj" />보다 큽니다.
        /// </returns>
        /// <param name="obj">이 인스턴스와 비교할 개체입니다. </param>
        /// <exception cref="T:System.ArgumentException"><paramref name="obj" />가 이 인스턴스와 같은 형식이 아닌 경우 </exception>
        int IComparable.CompareTo(object obj)
        {
            if (obj == null)
            {
                return(1);
            }

            if (obj is Complex)
            {
                return(GetModulus().CompareTo(((Complex)obj).GetModulus()));
            }

            if (ReflectionTool.CanAssign(obj, typeof(double)))
            {
                return(GetModulus().CompareTo((double)obj));
            }

            return(-1);
        }