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

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

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

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

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


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

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



-----------------
Действительно мистика. Как уже говорил в другом проэкте подобный тест проходит по правилам а в этом нет :(, я уже все перерыл, перекомпилил раз десять и ничего. Уже поглядываю на поварный топорик...
Может есть еще какие идеи?
...
Рейтинг: 0 / 0
Тестирование обьекта на null
    #32272303
Фотография ctmike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя с веткой уже по прощал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
Тестирование обьекта на null
    #32272649
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, а если в лоб присвоить этому объекту null - Присвоит или нет?
Самому проверить некогда.
...
Рейтинг: 0 / 0
Тестирование обьекта на null
    #32272874
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
;)
2 ctmike
Еще не попрощались :), вопрос висит.
Если обьект, к примеру, просто обьявить:
Код: plaintext
XmlNode node;

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

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

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

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

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

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


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