예제 #1
0
        static void Main()
        {
            const int n = 7;

            StringBase[] mas = new StringBase[n];           // Создание массива объектов базового типа Строка

            mas[0] = new StringDecimal(150);                // Заполнение вперемешку объектами как базового так и производного типов
            mas[1] = new StringDecimal(" +125 ");           // тут заполняем объектами типа Десятичная строка
            mas[2] = new StringDecimal("-25");
            mas[3] = new StringDecimal('2');
            mas[4] = new StringDecimal("qwerty");
            mas[5] = new StringBase("qwerty");              // тут добавим несколько объектов типа Строка
            mas[6] = new StringBase("abc");

            Console.WriteLine("\nДемонстрация операций над строками:");
            Console.WriteLine("\"{0}\" = \"{1}\"  \t is {2}", mas[0], mas[1], mas[0] == mas[1]);
            Console.WriteLine("\"{0}\" != \"{1}\"  \t is {2}", mas[2], mas[4], mas[2] != mas[4]);
            Console.WriteLine("\"{0}\" > \"{1}\"  \t is {2}", mas[0], mas[1], mas[0] > mas[1]);
            Console.WriteLine("\"{0}\" < \"{1}\"  \t is {2}", mas[2], mas[3], mas[2] < mas[3]);
            Console.WriteLine("\"{0}\" + \"{1}\"  \t = {2}", mas[0], mas[1], (mas[0] + mas[1]));
            Console.WriteLine("\"{0}\" - \"{1}\"  \t = {2}", mas[0], mas[1], (mas[0] - mas[1]));
            Console.WriteLine("\"{0}\" + \"{1}\"  \t = {2}", mas[5], mas[6], (mas[5] + mas[6]));
            Console.WriteLine("\"{0}\" + \"{1}\"  \t = {2}", mas[0], mas[6], (mas[0] + mas[6]));

            Console.WriteLine("\nДлина строки \"{0}\" = {1}", mas[1], mas[1].Length());
            Console.WriteLine("Cтрока до очистки \"{0}\"", mas[6]);
            mas[6].Clear();
            Console.WriteLine("Cтрока после очистки \"{0}\"", mas[6]);

            PrintArray("\nИсходный массив", mas);
            Array.Sort(mas);                                // сортировка массива (демонстрация работы метода CompareTo)
            PrintArray("Отсортированный массив", mas);
        }
예제 #2
0
        override public bool Equals(object obj)             // проверяет арифметическое равенство строк (как два числа)
        {
            if (obj == null || GetType() != obj.GetType())
            {
                return(false);
            }
            StringDecimal temp = (StringDecimal)obj;

            return(number_value == temp.number_value);
        }
예제 #3
0
 override public object Subtraction(object obj)      // Арифметическое вычитание
 {
     try
     {
         StringDecimal temp = (StringDecimal)obj;
         return(new StringDecimal(this.number_value - temp.number_value));
     }
     catch
     {
         return(base.Subtraction(obj));                  // если не удалось сложить как числа - складываем как строки
     }
 }
예제 #4
0
        override public int CompareTo(object obj)           // Сравнивает строку по значению с другой как два числа
        {
            StringDecimal temp = (StringDecimal)obj;

            if (this.number_value > temp.number_value)
            {
                return(1);
            }
            if (this.number_value < temp.number_value)
            {
                return(-1);
            }
            return(0);
        }