Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Тестирование обьекта на null / 17 сообщений из 17, страница 1 из 1
12.09.2003, 20:07
    #32264153
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тестирование обьекта на null
Привет всем!
Проблема с сабжем.
Мне кажется что это у меня проблема с фреймворком или еще с чем.
Суть:
Есть обьект XmlNode в какой то момент он может быть null и естественно мне на это надо реагировать.
Самая простая конструкция которая напрашивается:
Код: plaintext
if (myNode != null) 
- НЕ РАБОТАЕТ!!! Вроде все правильно, так и лдолжно быть но говорит что мол т.к. обьект null то с null его сравнивать нельзя. Бред? Бред! Но тем не менее. Обьект обьявлен и существует, но его значение null. Какие есть варианты для такой проверки?
...
Рейтинг: 0 / 0
14.09.2003, 14:20
    #32264480
xwalker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тестирование обьекта на null
а проверка на равенство null проходит? у меня работает такой код:
Код: plaintext
1.
2.
if (fmRefTBDoc == null || fmRefTBDoc.IsDisposed) 
       fmRefTBDoc = new FMRefTBDoc();

(fmRefTBDoc - наследник Form)

Здесь я расчитываю на то, что если объект - null, то вторая часть проверки не выполняется.
...
Рейтинг: 0 / 0
15.09.2003, 13:31
    #32265061
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тестирование обьекта на null
Я именно так и делал. Ранее. БРЕД. Открыл новый проэкт - все работает. В этом - нет!!! Условие проходит но в любом случае считает его TRUE. Когда же я пробую проверить его в Immidiate - кричит что мол ошибка, не могу проверить веражение т.к. обьект null....
Что может быть?
Я тут слышал один вариант: для дебага используется pdb файл, т.е. получается что в дебаге я вижу совсем не то что происходит реально(если не перекомпилить).
...
Рейтинг: 0 / 0
22.09.2003, 18:30
    #32272124
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тестирование обьекта на null
а так не пробовал?

int id;//or XmlNode...
if (id.Equals(null)){//пишем что-то тут}
...
Рейтинг: 0 / 0
22.09.2003, 19:14
    #32272152
NickKarev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тестирование обьекта на null
Мистика какая-то. Может, что-то другое неправильно? Попробуй повнимательнее посмотреть на значение объекта или обновить .net Framework. А может, комп глючит :) в любом случае, есл иумный человек долго бъется с проблемой и не может решить, значит, он подошел к ней не с той стороны.
...
Рейтинг: 0 / 0
22.09.2003, 22:26
    #32272265
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тестирование обьекта на null
Спасибо за ответы.
Итак,
Эйч, так тоже пробовал, результата никакого. В любом случае считает что условие верно. НИчего не понимаю. Сейчас вот снова попробовал, результат тот же, обьект существует но вот этот код

Код: plaintext
if (myNode.Equals(null)) myNode.Attributes[ "ZonaID" ].Value=NewZonaID;


идет в TRUE. подчеркиваю: обьект сейчас был НЕ нул.

2 NickKarev
Чего ж тут смотреть? Null он и есть null, а вот с фреймворком немного лабуда получилась: сначала поставил 1.1, но потом оказалось что остальная команда все еще сидит на старой версии и апгрейдится пока нехотить. Пришлось мне ставить старую студию поверх новой. Сам понимаю что тут возможны косяки, но прошло нормально и до этого момента особых проблем(кроме обычных глюков) небыло.



-----------------
Действительно мистика. Как уже говорил в другом проэкте подобный тест проходит по правилам а в этом нет :(, я уже все перерыл, перекомпилил раз десять и ничего. Уже поглядываю на поварный топорик...
Может есть еще какие идеи?
...
Рейтинг: 0 / 0
23.09.2003, 02:38
    #32272303
ctmike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тестирование обьекта на null
Хотя с веткой уже по прощалcиь, всеже зашел...

Каким образом XmlNode может быть null??

Она же создается документом
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
XmlDocument doc = new XmlDocument();
string xmlData =  "<mygirl></mygirl>" ;

doc.Load(new StringReader(xmlData));						
XmlNode node = doc.CreateNode(XmlNodeType.Element,  "elis" , "");
doc.DocumentElement.AppendChild(node);

doc.Save(Console.Out);


Я наверное дето туплю но у меня не получилось создать ноду без документа...

Наилучшие...
...
Рейтинг: 0 / 0
23.09.2003, 11:21
    #32272649
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тестирование обьекта на null
Интересно, а если в лоб присвоить этому объекту null - Присвоит или нет?
Самому проверить некогда.
...
Рейтинг: 0 / 0
23.09.2003, 13:22
    #32272874
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тестирование обьекта на null
;)
2 ctmike
Еще не попрощались :), вопрос висит.
Если обьект, к примеру, просто обьявить:
Код: plaintext
XmlNode node;

то в данный момент значение его будет нул. Далее, ты рассмотрел только создание нода, а если его нужно получить? Для чтения данных или изменения атрибутов? И в данный момент такого нода в документе не существует?

Код: plaintext
XmlNode myNode = RootNode.SelectSingleNode( "//following::*[attribute::ZonaID='2']" );

В приведенном коде ищется нод имеющий атрибут ZonaID='2' и если такого нет то обьект будет создан но значение его будет нул. Понимаешь? Вот этот случай мне и нужно поймать, а пока не получается.
И тебе наилучшие :)

2 hDrummer
Присвоит без проблем:
Код: plaintext
XmlNode node=null;

Это тоже самое как и в случае с отсутствующим нодом. Именно так я и проверял в тестовом проэкте, прокатило а рабочем нет! Я так понимаю это уже не вопрос метода проверки а вопрос как обойти баг или Что делать? (с)Достоевский.
...
Рейтинг: 0 / 0
23.09.2003, 14:08
    #32272980
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тестирование обьекта на null
ещё не всё.
а после присвоения проверить на null? Что скажет?
...
Рейтинг: 0 / 0
23.09.2003, 14:25
    #32273003
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тестирование обьекта на null
Тоже самое, считает условие проверки всегда верным, ведь когда нод не найдет , этот метод возвращает именно нул, если пытаюсь его пробить в watch или Immediate кричит что обьект нул и поэтому нифига проверять не получица. Идиотизм какой то.
...
Рейтинг: 0 / 0
23.09.2003, 14:54
    #32273049
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тестирование обьекта на null
интересненько, интересненько. надо будет в этом поковыряться.
...
Рейтинг: 0 / 0
23.09.2003, 15:04
    #32273075
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тестирование обьекта на null
А хоть идеи какие нить есть? Я вот щас сижу ковыряюсь...
...
Рейтинг: 0 / 0
23.09.2003, 15:40
    #32273169
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тестирование обьекта на null
идей.Net. Не до того сейчас.
...
Рейтинг: 0 / 0
23.09.2003, 15:48
    #32273196
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тестирование обьекта на null
На .NET и суда .NET Главное что Родину нашел :)

Вопрос остается открытым, если у кого появятся мысли - милости просим, буду рад выслушать.
...
Рейтинг: 0 / 0
27.09.2003, 02:54
    #32277412
ctmike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тестирование обьекта на null
.Net ответа?? - сделаем.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
using System;
using System.IO;
using System.Xml;

namespace xmla
{	
	class xmla
	{
		[STAThread]
		static void Main(string[] args)
		{							
				
			XmlDocument doc = new XmlDocument();
			string xmlData =  "<mygirl></mygirl>" ;

			doc.Load(new StringReader(xmlData));						
			XmlNode node = doc.CreateNode(XmlNodeType.Element,  "elis" ,  "");						
			doc.DocumentElement.AppendChild(node);			
			XmlNode elisnode = doc.DocumentElement.SelectSingleNode(" elis ");			
			Console.WriteLine(" Elis -  " + (!XmlNode.Equals(elisnode, null)).ToString());

			XmlNode bettynode = doc.DocumentElement.SelectSingleNode(" betty ");			
			Console.WriteLine(" Betty - " + (!XmlNode.Equals(bettynode, null)).ToString());

			doc.Save(Console.Out);

		}
	}
}


Извините что не заглядывал...
Запутал чтобы не ерничали..., так что раскапывайте...
Думаю теперь то точно наилучшие... гыгы...
...
Рейтинг: 0 / 0
29.09.2003, 15:37
    #32278446
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тестирование обьекта на null
Дело не в том что я не знаю способа проверки. Делов том что ни один из этих способов НЕ РАБОТАЕТ в данном проэкте. В другом - без проблем, а в этом точно такой же код всегда выходит в TRUE. Т.е. проблема не в самом коде. Это или баг студии или еще чего то, в этом то и вопрос - чего?
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Тестирование обьекта на null / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]