As System.TimeSpan?

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

As System.TimeSpan?

Сообщение MIT » 15.12.2009 (Вт) 13:39

Именно таким вопросом озадачила меня сегодня студия за версией 2008.
Предлагаю скрин:
Изображение

Что бы это могло значить? Студия сомневается в типе свойства и спрашивает у меня?
Отмечу, что не тип так называется, ведь знак вопроса не синий и не подчеркнут вот второй отмеченной области.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: As System.TimeSpan?

Сообщение Proxy » 15.12.2009 (Вт) 13:46

Часть идентификатора типа, нет?
Follow the white rabbit.

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Re: As System.TimeSpan?

Сообщение burik » 15.12.2009 (Вт) 14:22

Может студия не знает класса System.TimeSpan?
UPD: Или, к примеру, этот класс объявлен в двух местах?..
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: As System.TimeSpan?

Сообщение MIT » 15.12.2009 (Вт) 14:28

При клике на TimeSpan Объект браузер переносится именно на System.TimeSpan, если бы были конфликты (хотя не представляю как может быть два одноименных типа в одном неймспейсе) он бы этого не сделал.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: As System.TimeSpan?

Сообщение MIT » 15.12.2009 (Вт) 14:32

Посмотрел исходник библы.
Вот как объявлено это свойство:
Код: Выделить всё
        /// <summary>
        /// Get the length.
        /// the length of the audio file in milliseconds, represented as a numeric string.
        /// </summary>
        public TimeSpan? Length
        {
            get
            {
                string strlen = GetTextFrame("TLEN");

                if (String.IsNullOrEmpty(strlen))
                    return null;

                // test for a simple number in the field
                int len;
                if (int.TryParse(strlen, out len))
                {
                    return new TimeSpan(0, 0, 0, 0, len);
                }
                return null;
            }
        }

Значит это какая-то фишка, о которой никто кроме автора кода не знает.


Добавлено:
Студия определяет это поле как некое Nullable и не предоставляет доступа напрямую к значению, только через Length.Value. Думаю что это вариант решения проблемы со сравнением структуры (а ведь TimeSpan это структура) с Null (Nothing).
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: As System.TimeSpan?

Сообщение Nord777 » 15.12.2009 (Вт) 14:46

Значит это какая-то фишка, о которой никто кроме автора кода не знает.
Это вполне обычная фишка.
Применяется в основном для работы с базами.
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Re: As System.TimeSpan?

Сообщение burik » 15.12.2009 (Вт) 14:56

Nord777 писал(а):
Значит это какая-то фишка, о которой никто кроме автора кода не знает.
Это вполне обычная фишка.
Применяется в основном для работы с базами.

А как это вообще называется и где можно узнать подробнее? :)
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Re: As System.TimeSpan?

Сообщение VVitafresh » 15.12.2009 (Вт) 15:00

MIT писал(а):Студия определяет это поле как некое Nullable

Очень нужная фишка при работе с базами данных. А иначе как присвоить переменной значение, если поле DateTime имеет значение Null (т.е. дата не проставлена)?
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Re: As System.TimeSpan?

Сообщение VVitafresh » 15.12.2009 (Вт) 15:03

burik писал(а):А как это вообще называется и где можно узнать подробнее? :)

Nullable Types
Using Nullable Types in C#
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Re: As System.TimeSpan?

Сообщение burik » 15.12.2009 (Вт) 15:13

VVitafresh
Спасибо, понял что это. Полезная вещь, однако.. И не только при работе с базами.
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Re: As System.TimeSpan?

Сообщение FaKk2 » 16.12.2009 (Ср) 7:39

Ахахахахаха!!!! Вот студия тупая, да? Ставит вопросики направо и налево!

Нет, ну можно конечно написать и System.Nullable<TimeSpan>, но зачем... TimeSpan? ведь проще и быстрее.

Дженерик System.Nullablе<> является типом который может быть нулем (ту бишь отсутствие ссылки на обьект). Все такие типы имеют HasValue и Value.
Используется в конструкциях:
Код: Выделить всё
if (nullable.HasValue) blabla(nullable.Value);


или как было упомянуто на примере с базой:
Код: Выделить всё
SqlParameter("name", nullable.HasValue ? nullable.Value : DBNull.Value);
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 42

    TopList