Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2009, 21:11   #1
nevermind_111
 
Регистрация: 13.10.2009
Сообщений: 4
По умолчанию Перегрузка

Можно ли в с# перегрузить оператор > или < для типа string, если да то как?
nevermind_111 вне форума Ответить с цитированием
Старый 14.10.2009, 11:08   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Не совсем для String, но похоже:

Код:
    public class MyStrOperation
    {
        public static bool operator <(MyStrOperation s2, String s1)
        {
            return String.Compare(s2.str, s1) < 0;
        }

        public static bool operator >(MyStrOperation s2, String s1)
        {
            return String.Compare(s2.str, s1) > 0;
        }

        public static String operator -(MyStrOperation s1, int n)
        {
            return s1.str.Substring(0, s1.str.Length-n);
        }

        public static implicit operator MyStrOperation(string s)
        {
            return new MyStrOperation(s);
        }

        private String str;
        protected MyStrOperation(String s) { this.str = s; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            String s1 = "test1";
            String s2 = "test2";

            if ((MyStrOperation)s1 < s2)
            {
                Console.WriteLine((MyStrOperation)s1 > s2);
            }
            s1 = (MyStrOperation)s2 - 2;
            Console.WriteLine(s1);

            Console.ReadLine();
то-же самое расширяющими (Extension) методами было бы нагляднее. Собственно, они уже есть - Compare ....
alexBlack вне форума Ответить с цитированием
Старый 14.10.2009, 12:40   #3
nevermind_111
 
Регистрация: 13.10.2009
Сообщений: 4
По умолчанию

Спасибо, разобрался
nevermind_111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перегрузка оператора << z3rg Общие вопросы C/C++ 18 02.03.2010 02:58
Перегрузка оператора + z3rg Общие вопросы C/C++ 1 22.03.2009 03:06
Перегрузка ++ counter Общие вопросы C/C++ 3 20.12.2008 13:30
перегрузка + softrix Общие вопросы C/C++ 2 21.06.2008 22:27
Перегрузка ++ Dark_Maks Общие вопросы C/C++ 2 18.12.2007 09:27