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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Избавиться от NullReferenceException 
V
    Опции темы
dazy
Дата 25.12.2007, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 4
Всего: 8



Есть функция string ImageWrap(Guid ImageID, string Size)  которая что-то там делает, не суть важно что.
Вызывается функция из разметки.
Дело в том, что иногда параметра ImageID нет в базе, и страничка вываливает NullReferenceException.
Приходится вызывать функцию таким образом: 

Код

<asp:Label ID="lbImage" runat="server" Text='<%# (Eval("ImageID") != null) ? Helper.ImageWrap((Guid)Eval("ImageID"),"24") : "" %>'></asp:Label>


Можно ли избежать структуры   "? :"

PM MAIL   Вверх
HAL707
Дата 25.12.2007, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: 2
Всего: 4



Можно сделать, как тут написано, то есть дополнительная функция в коде страницы, которая проверяет на null. А по другому никак, ИМХО...

Это сообщение отредактировал(а) HAL707 - 25.12.2007, 18:29
PM MAIL   Вверх
Mymik
Дата 25.12.2007, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 50
Всего: 78



dazy, можно избавиться от конструкции "? :" заменив ее на отличную функцию из .NET 2.0 "??" (поглащение нуля -- если значение переменной слева является нулем, то возвращается правое значение, иначе левое smile )
Код

<asp:Label ID="lbImage" runat="server" Text='<%# Helper.ImageWrap((Guid)(Eval("ImageID") ?? Guid.Empty),"24") %>'></asp:Label>




--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
dazy
Дата 26.12.2007, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 4
Всего: 8



Большое спасибо за советы. Очень порадовала ??, правда, полезная штучка!

Но я решил сделать по другому: 
Helper.ImageWrap вызываю без преобразования ImageID к Guid. Получается первый параметр передается как object. А уже в самом ImageWrap проверяю равен ли первый параметр null.

Код

<asp:Label ID="lbImage" runat="server" Text='<%# Helper.ImageWrap(Eval("ImageID"),"24") %>'></asp:Label>


Код

    public static string ImageWrap(object ImageObject, string Size) 
    {
 
        if (ImageObject != null)
        {
            Guid ImageID = (Guid)ImageObject;
            ...
        }
        else 
        {
            return string.Empty;
        }
    }

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

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

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

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


 




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


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

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