I think this may be a bug in Xamarin.iOS. If we look at the NSSetEnumerator , then her delegate signature will look like this:
public delegate Void NSSetEnumerator (NSObject obj, ref Boolean stop)
I think he needs the ref keyword or the value you set will not change.
CNContactStoreEnumerateContactsHandler for reference
public delegate Void CNContactStoreEnumerateContactsHandler (CNContact contact,Boolean stop)
NSSetEnumerator, , .
, , , 5:
NSSet set = new NSSet<NSNumber> (new []{
new NSNumber(1),
new NSNumber(2),
new NSNumber(3),
new NSNumber(4),
new NSNumber(5),
new NSNumber(6),
new NSNumber(7),
new NSNumber(8),
new NSNumber(9)
});
set.Enumerate ((NSObject obj, ref bool stop) => {
var num = obj as NSNumber;
if (num.Int32Value == 5)
stop = true;
});
, .