Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> буквенно-числовой идентификатор, буквенно-числовой идентификатор 
V
    Опции темы
krb
Дата 17.7.2010, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 25.5.2008

Репутация: нет
Всего: -3



есть такой идентификатор 345FAS310E575896325SA, После приращения на 123 - 345FAS310E575896325SA123
Идентификатор - 345FAS310E575896325SA123, После приращения на 234 - 345FAS310E575896325SA357.
для инкремента нельзя использовать int не могу разобраться. жду советов.
--------------------
  
PM MAIL WWW ICQ   Вверх
mihryak
Дата 17.7.2010, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 19
Всего: 36



а после приращения на 1001? а после вычитания? маловато сведений

исходя из написанного и преисполнившись самых боагоприятных ожиданий, советую сделать такой класс Identifier:
Код

    class Identifer : IEquatable<Identifer>
    {
        private const string ConstPart = "345FAS310E575896325SA";

        private int intPart;

        public void Increment(int value)
        {
            if (value < 0)
            {
                throw new ArgumentException("Value must be an positive integer or 0", "value");
            }
            intPart += value;
        }

        public string Value
        {
            get { return ToString(); }
        }

        public override string ToString()
        {
            return string.Format("{0}{1}", ConstPart, intPart > 0 ? intPart.ToString() : null);
        }

        public override int GetHashCode()
        {
            return intPart.GetHashCode();
        }

        public bool Equals(Identifer other)
        {
            return other == null ? false : GetHashCode() == other.GetHashCode();
        }

        public override bool Equals(object obj)
        {
            return Equals(obj as Identifer);
        }

        public static bool operator == (Identifer left, Identifer right)
        {
            if (ReferenceEquals(left, null) && ReferenceEquals(right, null))
                return true;

            if (ReferenceEquals(left, null) || ReferenceEquals(right, null))
                return false;

            return left.Equals(right);
        }

        public static bool operator != (Identifer left, Identifer right)
        {
            return !(left == right);
        }
    }

Код

            Identifer identifer = new Identifer();
            Console.WriteLine(identifer);
            identifer.Increment(123);
            Console.WriteLine(identifer);
            identifer.Increment(234);
            Console.WriteLine(identifer);

PM MAIL ICQ   Вверх
krb
Дата 18.7.2010, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 25.5.2008

Репутация: нет
Всего: -3



спасибо,буду разбираться.
--------------------
  
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0792 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.