public static void ChangeDelegateType() { WaitCallback callback = obj => { }; callback += obj => { }; var result = callback.ChangeType <SendOrPostCallback>(); NotNull(result); var list1 = callback.GetInvocationList().Select(d => d.Method); var list2 = result.GetInvocationList().Select(d => d.Method); Equal(list1, list2); }