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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2013, 09:16   #1
Kroshandowski
 
Регистрация: 17.05.2013
Сообщений: 3
По умолчанию Как проверить null или сылка на объект не указывает на экземпляр объекта

Здравствуйте!При отладке, программа вылетает и выходит сообщение:

Цитата:
Ссылка на объект не указывает на экземпляр объекта
и указывает на эти строки:

Код:
listView1.Items.Add("Файловая система: ").SubItems.Add(queryObj["FileSystem"].ToString());
listView1.Items.Add("Серийный номер: ").SubItems.Add(queryObj["VolumeSerialNumber"].ToString());
listView1.Items.Add("Свободное место: ").SubItems.Add(queryObj["FreeSpace"].ToString());
listView1.Items.Add("Общий размер: ").SubItems.Add(queryObj["Size"].ToString());
Вот код кнопки, которая вызывает список логический дисков.

Код:
private void button4_Click(object sender, EventArgs e)
{
listView1.Items.Clear();
ManagementObjectSearcher searcher2 = new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_LogicalDisk");

foreach (ManagementObject queryObj in searcher2.Get())
{
listView1.Items.Add("Диск: ").SubItems.Add(queryObj["Caption"].ToString());
listView1.Items.Add("Значение: ").SubItems.Add(queryObj["Description"].ToString());
listView1.Items.Add("Файловая система: ").SubItems.Add(queryObj["FileSystem"].ToString());
listView1.Items.Add("Серийный номер: ").SubItems.Add(queryObj["VolumeSerialNumber"].ToString());
listView1.Items.Add("Свободное место: ").SubItems.Add(queryObj["FreeSpace"].ToString());
listView1.Items.Add("Общий размер: ").SubItems.Add(queryObj["Size"].ToString());
listView1.Items.Add("-------------------");
}
}
Читал на форумах,что данное сообщение выскакивает когда значение равно null. Как сделать проверку или как-то изменить код?

Заранее спасибо.
Kroshandowski вне форума Ответить с цитированием
Старый 17.05.2013, 09:45   #2
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

Может так, и дальше по аналогии, если Add() object принимает то можно и без проверки, просто .ToString() убрать
Код:
listView1.Items.Add("Файловая система: ").SubItems.Add(queryObj["FileSystem"] != null ? queryObj["FileSystem"] : string.Empty);
Guy вне форума Ответить с цитированием
Старый 17.05.2013, 11:50   #3
Kroshandowski
 
Регистрация: 17.05.2013
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Guy Посмотреть сообщение
Может так, и дальше по аналогии, если Add() object принимает то можно и без проверки, просто .ToString() убрать
Код:
listView1.Items.Add("Файловая система: ").SubItems.Add(queryObj["FileSystem"] != null ? queryObj["FileSystem"] : string.Empty);
Не помогло(
Выдает ошибку:
Цитата:
Аргумент "1": преобразование типа из "object" в "string" невозможно
Цитата:
Наиболее подходящий перегруженный метод для "System.Windows.Forms.ListViewItem. ListViewSubItemCollection.Add(strin g)" имеет несколько недопустимых аргументов
Kroshandowski вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как проверить проинициализирован ли объект? :=) Общие вопросы Delphi 1 13.08.2012 14:28
C# класс -> Ссылка на объект не указывает на экземпляр объекта. MyXa C# (си шарп) 2 17.06.2012 07:28
Ссылка на объект не указывает на экземпляр объекта. Kazbek17 C# (си шарп) 11 08.02.2012 18:56
Ссылка на объект не указывает на экземпляр объекта C++ Юля_ Помощь студентам 2 09.01.2012 16:04