Показать сообщение отдельно
Старый 14.11.2011, 22:35   #6
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Написал c# враппер

Сообщение от pozitiffcat Посмотреть сообщение
переопределить операторы == и !=
Я пробовал переопределять... но происходит зацикливание,
вот почему

if((first!=null) && (second!=null))//<<тут зацикливание
{
if(first._handle == second._handle) return true;
}
return false;

Префикс не уберу. Я хочу чтобы он остался. Это мой "загон"
эм... не мешалобы подучить матчасть
http://blog.nguen.net/post191-override_equals.html
по поводу шанса null -
простой вариант -
class Test
	{
		public int X;
		
		public override bool Equals (object obj)
		{
			if(obj is  Test)
			{
				return X==((Test)obj).X;
			}
			return base.Equals (obj);
		}
		
		public static bool operator==(Test obj,Test obj2)
		{
			if(obj  is Test)
			{
				
			return obj.Equals(obj2);
			}
			else if(obj2 is Test)
			{
				return obj2.Equals(obj);
			}
			return false;
		}
		
		public static bool operator!=(Test obj,Test obj2)
		{
			
			if(obj  is Test)
			{
				
			return !obj.Equals(obj2);
			}
			else if(obj2 is Test)
			{
				return !obj2.Equals(obj);
			}
			return true;
		}
		
		
	}
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (14.11.2011)