Bläddra i källkod

Do not reject null key

svn path=/trunk/mcs/; revision=70354
Konstantin Triger 19 år sedan
förälder
incheckning
fa86a4c482

+ 4 - 0
mcs/class/System/System.ComponentModel/ChangeLog

@@ -1,3 +1,7 @@
+2007-01-02  Konstantin Triger  <[email protected]>
+
+	* EventHandlerList.cs: Do not reject null key.
+
 2006-12-25  Raja R Harinath  <[email protected]>
 
 	* InitializationEventAttribute.cs: New.

+ 0 - 3
mcs/class/System/System.ComponentModel/EventHandlerList.cs

@@ -83,9 +83,6 @@ namespace System.ComponentModel {
 		}
 		private ListNode FindEntry (object key)
 		{
-			if (key == null)
-				throw new ArgumentNullException ("key", "Attempted lookup for a null key.");
-
 			for (ListNode entry = head; entry != null; entry = entry.next)
 				if (key == entry.key)
 					return entry;

+ 15 - 0
mcs/class/System/Test/System.ComponentModel/EventHandlerListTests.cs

@@ -121,6 +121,21 @@ namespace MonoTests.System.ComponentModel
 			list.Dispose ();
 		}
 		
+		[Test]
+		public void NullKey ()
+		{
+			EventHandlerList list = new EventHandlerList ();
+			EventHandler one = new EventHandler (Deleg1);
+			
+			list.AddHandler (null, one);
+			EventHandler d = list [null] as EventHandler;
+			Assertion.Assert ("NullKey #01", d != null);
+			
+			list.RemoveHandler (null, one);
+			d = list [null] as EventHandler;
+			Assertion.Assert ("NullKey #02", d == null);
+		}
+		
 #if !NUNIT
 		void Assert (string msg, bool result)
 		{