Browse Source

Update to use nameof operator

Oren Novotny 9 years ago
parent
commit
0e5d38a4e4
90 changed files with 1560 additions and 1557 deletions
  1. 3 3
      Rx.NET/Source/Microsoft.Reactive.Testing/ColdObservable.cs
  2. 3 3
      Rx.NET/Source/Microsoft.Reactive.Testing/HotObservable.cs
  3. 18 18
      Rx.NET/Source/Microsoft.Reactive.Testing/ReactiveAssert.cs
  4. 5 5
      Rx.NET/Source/Microsoft.Reactive.Testing/ReactiveTest.cs
  5. 5 5
      Rx.NET/Source/Microsoft.Reactive.Testing/TestScheduler.cs
  6. 3 0
      Rx.NET/Source/Rx.NET.sln.DotSettings
  7. 30 30
      Rx.NET/Source/System.Reactive.Core/Observable.Extensions.cs
  8. 26 26
      Rx.NET/Source/System.Reactive.Core/Observer.Extensions.cs
  9. 1 1
      Rx.NET/Source/System.Reactive.Core/Reactive/AnonymousObservable.cs
  10. 3 3
      Rx.NET/Source/System.Reactive.Core/Reactive/AnonymousObserver.cs
  11. 1 1
      Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/AsyncLock.cs
  12. 1 1
      Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/ConcurrencyAbstractionLayer.Default.cs
  13. 1 1
      Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/CurrentThreadScheduler.cs
  14. 5 5
      Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/DefaultScheduler.cs
  15. 4 4
      Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/ImmediateScheduler.cs
  16. 2 2
      Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/LocalScheduler.cs
  17. 3 3
      Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/ScheduledItem.cs
  18. 30 30
      Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/Scheduler.Async.cs
  19. 12 12
      Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/Scheduler.Recursive.cs
  20. 10 10
      Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/Scheduler.Services.Emulation.cs
  21. 8 8
      Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/Scheduler.Simple.cs
  22. 5 5
      Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/Scheduler.Wrappers.cs
  23. 1 1
      Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/SchedulerOperation.cs
  24. 1 1
      Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/SchedulerQueue.cs
  25. 3 3
      Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/SchedulerWrapper.cs
  26. 11 11
      Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/Synchronization.cs
  27. 4 4
      Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/SynchronizationContextScheduler.cs
  28. 1 1
      Rx.NET/Source/System.Reactive.Core/Reactive/Disposables/CancellationDisposable.cs
  29. 8 8
      Rx.NET/Source/System.Reactive.Core/Reactive/Disposables/CompositeDisposable.cs
  30. 2 2
      Rx.NET/Source/System.Reactive.Core/Reactive/Disposables/ContextDisposable.cs
  31. 1 1
      Rx.NET/Source/System.Reactive.Core/Reactive/Disposables/Disposable.cs
  32. 1 1
      Rx.NET/Source/System.Reactive.Core/Reactive/Disposables/RefCountDisposable.cs
  33. 2 2
      Rx.NET/Source/System.Reactive.Core/Reactive/Disposables/ScheduledDisposable.cs
  34. 5 5
      Rx.NET/Source/System.Reactive.Core/Reactive/Disposables/StableCompositeDisposable.cs
  35. 1 1
      Rx.NET/Source/System.Reactive.Core/Reactive/Internal/Producer.cs
  36. 26 26
      Rx.NET/Source/System.Reactive.Core/Reactive/Notification.cs
  37. 1 1
      Rx.NET/Source/System.Reactive.Core/Reactive/ObservableBase.cs
  38. 1 1
      Rx.NET/Source/System.Reactive.Core/Reactive/ObserverBase.cs
  39. 20 20
      Rx.NET/Source/System.Reactive.Experimental/Reactive/Linq/ObservableEx.cs
  40. 2 2
      Rx.NET/Source/System.Reactive.Experimental/Reactive/ListObservable.cs
  41. 1 1
      Rx.NET/Source/System.Reactive.Linq/Reactive/Concurrency/HistoricalScheduler.cs
  42. 4 4
      Rx.NET/Source/System.Reactive.Linq/Reactive/Concurrency/VirtualTimeScheduler.Extensions.cs
  43. 9 9
      Rx.NET/Source/System.Reactive.Linq/Reactive/Concurrency/VirtualTimeScheduler.cs
  44. 5 5
      Rx.NET/Source/System.Reactive.Linq/Reactive/EventPatternSourceBase.cs
  45. 30 30
      Rx.NET/Source/System.Reactive.Linq/Reactive/Joins/Pattern.cs
  46. 149 149
      Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Aggregates.cs
  47. 1 1
      Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Async.cs
  48. 4 4
      Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Awaiter.cs
  49. 63 63
      Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Binding.cs
  50. 35 35
      Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Blocking.cs
  51. 11 11
      Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Concurrency.cs
  52. 12 12
      Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Conversions.cs
  53. 38 38
      Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Creation.cs
  54. 79 79
      Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Events.cs
  55. 30 30
      Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Imperative.cs
  56. 6 6
      Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Joins.cs
  57. 224 224
      Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Multiple.cs
  58. 67 67
      Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Single.cs
  59. 159 159
      Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.StandardSequenceOperators.cs
  60. 175 175
      Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Time.cs
  61. 1 1
      Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable/Never.cs
  62. 3 3
      Rx.NET/Source/System.Reactive.Linq/Reactive/Subjects/AsyncSubject.cs
  63. 2 2
      Rx.NET/Source/System.Reactive.Linq/Reactive/Subjects/BehaviorSubject.cs
  64. 1 1
      Rx.NET/Source/System.Reactive.Linq/Reactive/Subjects/ConnectableObservable.cs
  65. 5 5
      Rx.NET/Source/System.Reactive.Linq/Reactive/Subjects/ReplaySubject.cs
  66. 12 12
      Rx.NET/Source/System.Reactive.Linq/Reactive/Subjects/Subject.Extensions.cs
  67. 2 2
      Rx.NET/Source/System.Reactive.Linq/Reactive/Subjects/Subject.cs
  68. 10 10
      Rx.NET/Source/System.Reactive.Linq/Reactive/Threading/Tasks/TaskObservableExtensions.cs
  69. 1 1
      Rx.NET/Source/System.Reactive.PlatformServices/Reactive/Concurrency/ConcurrencyAbstractionLayerImpl.cs
  70. 4 4
      Rx.NET/Source/System.Reactive.PlatformServices/Reactive/Concurrency/EventLoopScheduler.cs
  71. 5 5
      Rx.NET/Source/System.Reactive.PlatformServices/Reactive/Concurrency/NewThreadScheduler.cs
  72. 5 5
      Rx.NET/Source/System.Reactive.PlatformServices/Reactive/Concurrency/TaskPoolScheduler.cs
  73. 5 5
      Rx.NET/Source/System.Reactive.PlatformServices/Reactive/Concurrency/ThreadPoolScheduler.cs
  74. 29 29
      Rx.NET/Source/System.Reactive.Providers/Reactive/Joins/QueryablePattern.cs
  75. 1 1
      Rx.NET/Source/System.Reactive.Providers/Reactive/Linq/Observable.Queryable.cs
  76. 8 8
      Rx.NET/Source/System.Reactive.Providers/Reactive/Linq/Qbservable.Joins.cs
  77. 4 4
      Rx.NET/Source/System.Reactive.Providers/Reactive/Linq/Qbservable.cs
  78. 3 3
      Rx.NET/Source/System.Reactive.Providers/Reactive/ObservableQuery.cs
  79. 4 4
      Rx.NET/Source/System.Reactive.Runtime.Remoting/Reactive/Linq/Observable.Remoting.cs
  80. 5 5
      Rx.NET/Source/System.Reactive.Windows.Forms/Reactive/Concurrency/ControlScheduler.cs
  81. 4 4
      Rx.NET/Source/System.Reactive.Windows.Forms/Reactive/Linq/ControlObservable.cs
  82. 6 6
      Rx.NET/Source/System.Reactive.Windows.Threading/Reactive/Concurrency/DispatcherScheduler.cs
  83. 24 24
      Rx.NET/Source/System.Reactive.Windows.Threading/Reactive/Linq/DispatcherObservable.cs
  84. 13 13
      Rx.NET/Source/System.Reactive.WindowsRuntime/Foundation/AsyncInfoExtensions.cs
  85. 11 11
      Rx.NET/Source/System.Reactive.WindowsRuntime/Linq/AsyncInfoObservable.cs
  86. 6 6
      Rx.NET/Source/System.Reactive.WindowsRuntime/Linq/WindowsObservable.Events.cs
  87. 10 10
      Rx.NET/Source/System.Reactive.WindowsRuntime/Linq/WindowsObservable.StandardSequenceOperators.cs
  88. 1 1
      Rx.NET/Source/Tests.System.Reactive/MockDisposable.cs
  89. 2 2
      Rx.NET/Source/Tests.System.Reactive/MockEnumerable.cs
  90. 1 1
      Rx.NET/Source/Tests.System.Reactive/NullErrorObservable.cs

+ 3 - 3
Rx.NET/Source/Microsoft.Reactive.Testing/ColdObservable.cs

@@ -18,9 +18,9 @@ namespace Microsoft.Reactive.Testing
         public ColdObservable(TestScheduler scheduler, params Recorded<Notification<T>>[] messages)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (messages == null)
-                throw new ArgumentNullException("messages");
+                throw new ArgumentNullException(nameof(messages));
 
             this.scheduler = scheduler;
             this.messages = messages;
@@ -29,7 +29,7 @@ namespace Microsoft.Reactive.Testing
         public virtual IDisposable Subscribe(IObserver<T> observer)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             subscriptions.Add(new Subscription(scheduler.Clock));
             var index = subscriptions.Count - 1;

+ 3 - 3
Rx.NET/Source/Microsoft.Reactive.Testing/HotObservable.cs

@@ -19,9 +19,9 @@ namespace Microsoft.Reactive.Testing
         public HotObservable(TestScheduler scheduler, params Recorded<Notification<T>>[] messages)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (messages == null)
-                throw new ArgumentNullException("messages");
+                throw new ArgumentNullException(nameof(messages));
 
             this.scheduler = scheduler;
             this.messages = messages;
@@ -44,7 +44,7 @@ namespace Microsoft.Reactive.Testing
         public virtual IDisposable Subscribe(IObserver<T> observer)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             observers.Add(observer);
             subscriptions.Add(new Subscription(scheduler.Clock));

+ 18 - 18
Rx.NET/Source/Microsoft.Reactive.Testing/ReactiveAssert.cs

@@ -43,9 +43,9 @@ namespace Microsoft.Reactive.Testing
         public static void AreElementsEqual<T>(IEnumerable<T> expected, IEnumerable<T> actual)
         {
             if (expected == null)
-                throw new ArgumentNullException("expected");
+                throw new ArgumentNullException(nameof(expected));
             if (actual == null)
-                throw new ArgumentNullException("actual");
+                throw new ArgumentNullException(nameof(actual));
 
             if (!expected.SequenceEqual(actual))
                 Assert.True(false, Message(actual, expected));
@@ -62,9 +62,9 @@ namespace Microsoft.Reactive.Testing
         public static void AreElementsEqual<T>(IEnumerable<T> expected, IEnumerable<T> actual, string message)
         {
             if (expected == null)
-                throw new ArgumentNullException("expected");
+                throw new ArgumentNullException(nameof(expected));
             if (actual == null)
-                throw new ArgumentNullException("actual");
+                throw new ArgumentNullException(nameof(actual));
 
             if (!expected.SequenceEqual(actual))
                 Assert.True(false, message);
@@ -80,9 +80,9 @@ namespace Microsoft.Reactive.Testing
         public static void AreElementsEqual<T>(IObservable<T> expected, IObservable<T> actual)
         {
             if (expected == null)
-                throw new ArgumentNullException("expected");
+                throw new ArgumentNullException(nameof(expected));
             if (actual == null)
-                throw new ArgumentNullException("actual");
+                throw new ArgumentNullException(nameof(actual));
 
             AreElementsEqual(expected.Materialize().ToEnumerable(), actual.Materialize().ToEnumerable());
         }
@@ -98,9 +98,9 @@ namespace Microsoft.Reactive.Testing
         public static void AreElementsEqual<T>(IObservable<T> expected, IObservable<T> actual, string message)
         {
             if (expected == null)
-                throw new ArgumentNullException("expected");
+                throw new ArgumentNullException(nameof(expected));
             if (actual == null)
-                throw new ArgumentNullException("actual");
+                throw new ArgumentNullException(nameof(actual));
 
             AreElementsEqual(expected.Materialize().ToEnumerable(), actual.Materialize().ToEnumerable(), message);
         }
@@ -114,7 +114,7 @@ namespace Microsoft.Reactive.Testing
         public static void Throws<TException>(Action action) where TException : Exception
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var failed = false;
             try
@@ -144,7 +144,7 @@ namespace Microsoft.Reactive.Testing
         public static void Throws<TException>(Action action, string message) where TException : Exception
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var failed = false;
             try
@@ -174,7 +174,7 @@ namespace Microsoft.Reactive.Testing
         public static void Throws<TException>(TException exception, Action action) where TException : Exception
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var failed = false;
             try
@@ -206,7 +206,7 @@ namespace Microsoft.Reactive.Testing
         public static void Throws<TException>(TException exception, Action action, string message) where TException : Exception
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var failed = false;
             try
@@ -237,9 +237,9 @@ namespace Microsoft.Reactive.Testing
         public static void AssertEqual<T>(this IEnumerable<T> actual, IEnumerable<T> expected)
         {
             if (actual == null)
-                throw new ArgumentNullException("actual");
+                throw new ArgumentNullException(nameof(actual));
             if (expected == null)
-                throw new ArgumentNullException("expected");
+                throw new ArgumentNullException(nameof(expected));
 
             ReactiveAssert.AreElementsEqual(expected, actual);
         }
@@ -254,9 +254,9 @@ namespace Microsoft.Reactive.Testing
         public static void AssertEqual<T>(this IEnumerable<T> actual, params T[] expected)
         {
             if (actual == null)
-                throw new ArgumentNullException("actual");
+                throw new ArgumentNullException(nameof(actual));
             if (expected == null)
-                throw new ArgumentNullException("expected");
+                throw new ArgumentNullException(nameof(expected));
 
             ReactiveAssert.AreElementsEqual(expected, actual);
         }
@@ -271,9 +271,9 @@ namespace Microsoft.Reactive.Testing
         public static void AssertEqual<T>(this IObservable<T> actual, IObservable<T> expected)
         {
             if (actual == null)
-                throw new ArgumentNullException("actual");
+                throw new ArgumentNullException(nameof(actual));
             if (expected == null)
-                throw new ArgumentNullException("expected");
+                throw new ArgumentNullException(nameof(expected));
 
             ReactiveAssert.AreElementsEqual(expected, actual);
         }

+ 5 - 5
Rx.NET/Source/Microsoft.Reactive.Testing/ReactiveTest.cs

@@ -50,7 +50,7 @@ namespace Microsoft.Reactive.Testing
         public static Recorded<Notification<T>> OnNext<T>(long ticks, Func<T, bool> predicate)
         {
             if (predicate == null)
-                throw new ArgumentNullException("predicate");
+                throw new ArgumentNullException(nameof(predicate));
 
             return new Recorded<Notification<T>>(ticks, new OnNextPredicate<T>(predicate));
         }
@@ -89,7 +89,7 @@ namespace Microsoft.Reactive.Testing
         public static Recorded<Notification<T>> OnError<T>(long ticks, Exception exception)
         {
             if (exception == null)
-                throw new ArgumentNullException("exception");
+                throw new ArgumentNullException(nameof(exception));
 
             return new Recorded<Notification<T>>(ticks, Notification.CreateOnError<T>(exception));
         }
@@ -105,7 +105,7 @@ namespace Microsoft.Reactive.Testing
         public static Recorded<Notification<T>> OnError<T>(long ticks, Func<Exception, bool> predicate)
         {
             if (predicate == null)
-                throw new ArgumentNullException("predicate");
+                throw new ArgumentNullException(nameof(predicate));
 
             return new Recorded<Notification<T>>(ticks, new OnErrorPredicate<T>(predicate));
         }
@@ -122,7 +122,7 @@ namespace Microsoft.Reactive.Testing
         public static Recorded<Notification<T>> OnError<T>(long ticks, Exception exception, T witness)
         {
             if (exception == null)
-                throw new ArgumentNullException("exception");
+                throw new ArgumentNullException(nameof(exception));
 
             return new Recorded<Notification<T>>(ticks, Notification.CreateOnError<T>(exception));
         }
@@ -139,7 +139,7 @@ namespace Microsoft.Reactive.Testing
         public static Recorded<Notification<T>> OnError<T>(long ticks, Func<Exception, bool> predicate, T witness)
         {
             if (predicate == null)
-                throw new ArgumentNullException("predicate");
+                throw new ArgumentNullException(nameof(predicate));
 
             return new Recorded<Notification<T>>(ticks, new OnErrorPredicate<T>(predicate));
         }

+ 5 - 5
Rx.NET/Source/Microsoft.Reactive.Testing/TestScheduler.cs

@@ -75,7 +75,7 @@ namespace Microsoft.Reactive.Testing
         public ITestableObserver<T> Start<T>(Func<IObservable<T>> create, long created, long subscribed, long disposed)
         {
             if (create == null)
-                throw new ArgumentNullException("create");
+                throw new ArgumentNullException(nameof(create));
 
             var source = default(IObservable<T>);
             var subscription = default(IDisposable);
@@ -102,7 +102,7 @@ namespace Microsoft.Reactive.Testing
         public ITestableObserver<T> Start<T>(Func<IObservable<T>> create, long disposed)
         {
             if (create == null)
-                throw new ArgumentNullException("create");
+                throw new ArgumentNullException(nameof(create));
 
             return Start(create, ReactiveTest.Created, ReactiveTest.Subscribed, disposed);
         }
@@ -117,7 +117,7 @@ namespace Microsoft.Reactive.Testing
         public ITestableObserver<T> Start<T>(Func<IObservable<T>> create)
         {
             if (create == null)
-                throw new ArgumentNullException("create");
+                throw new ArgumentNullException(nameof(create));
 
             return Start(create, ReactiveTest.Created, ReactiveTest.Subscribed, ReactiveTest.Disposed);
         }
@@ -132,7 +132,7 @@ namespace Microsoft.Reactive.Testing
         public ITestableObservable<T> CreateHotObservable<T>(params Recorded<Notification<T>>[] messages)
         {
             if (messages == null)
-                throw new ArgumentNullException("messages");
+                throw new ArgumentNullException(nameof(messages));
 
             return new HotObservable<T>(this, messages);
         }
@@ -147,7 +147,7 @@ namespace Microsoft.Reactive.Testing
         public ITestableObservable<T> CreateColdObservable<T>(params Recorded<Notification<T>>[] messages)
         {
             if (messages == null)
-                throw new ArgumentNullException("messages");
+                throw new ArgumentNullException(nameof(messages));
 
             return new ColdObservable<T>(this, messages);
         }

File diff suppressed because it is too large
+ 3 - 0
Rx.NET/Source/Rx.NET.sln.DotSettings


+ 30 - 30
Rx.NET/Source/System.Reactive.Core/Observable.Extensions.cs

@@ -27,7 +27,7 @@ namespace System
         public static IDisposable Subscribe<T>(this IObservable<T> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             //
             // [OK] Use of unsafe Subscribe: non-pretentious constructor for an observer; this overload is not to be used internally.
@@ -46,9 +46,9 @@ namespace System
         public static IDisposable Subscribe<T>(this IObservable<T> source, Action<T> onNext)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
 
             //
             // [OK] Use of unsafe Subscribe: non-pretentious constructor for an observer; this overload is not to be used internally.
@@ -68,11 +68,11 @@ namespace System
         public static IDisposable Subscribe<T>(this IObservable<T> source, Action<T> onNext, Action<Exception> onError)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
             if (onError == null)
-                throw new ArgumentNullException("onError");
+                throw new ArgumentNullException(nameof(onError));
 
             //
             // [OK] Use of unsafe Subscribe: non-pretentious constructor for an observer; this overload is not to be used internally.
@@ -92,11 +92,11 @@ namespace System
         public static IDisposable Subscribe<T>(this IObservable<T> source, Action<T> onNext, Action onCompleted)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
             if (onCompleted == null)
-                throw new ArgumentNullException("onCompleted");
+                throw new ArgumentNullException(nameof(onCompleted));
 
             //
             // [OK] Use of unsafe Subscribe: non-pretentious constructor for an observer; this overload is not to be used internally.
@@ -117,13 +117,13 @@ namespace System
         public static IDisposable Subscribe<T>(this IObservable<T> source, Action<T> onNext, Action<Exception> onError, Action onCompleted)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
             if (onError == null)
-                throw new ArgumentNullException("onError");
+                throw new ArgumentNullException(nameof(onError));
             if (onCompleted == null)
-                throw new ArgumentNullException("onCompleted");
+                throw new ArgumentNullException(nameof(onCompleted));
 
             //
             // [OK] Use of unsafe Subscribe: non-pretentious constructor for an observer; this overload is not to be used internally.
@@ -147,9 +147,9 @@ namespace System
         public static void Subscribe<T>(this IObservable<T> source, IObserver<T> observer, CancellationToken token)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             source.Subscribe_(observer, token);
         }
@@ -165,7 +165,7 @@ namespace System
         public static void Subscribe<T>(this IObservable<T> source, CancellationToken token)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             source.Subscribe_(new AnonymousObserver<T>(Stubs<T>.Ignore, Stubs.Throw, Stubs.Nop), token);
         }
@@ -181,9 +181,9 @@ namespace System
         public static void Subscribe<T>(this IObservable<T> source, Action<T> onNext, CancellationToken token)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
 
             source.Subscribe_(new AnonymousObserver<T>(onNext, Stubs.Throw, Stubs.Nop), token);
         }
@@ -200,11 +200,11 @@ namespace System
         public static void Subscribe<T>(this IObservable<T> source, Action<T> onNext, Action<Exception> onError, CancellationToken token)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
             if (onError == null)
-                throw new ArgumentNullException("onError");
+                throw new ArgumentNullException(nameof(onError));
 
             source.Subscribe_(new AnonymousObserver<T>(onNext, onError, Stubs.Nop), token);
         }
@@ -221,11 +221,11 @@ namespace System
         public static void Subscribe<T>(this IObservable<T> source, Action<T> onNext, Action onCompleted, CancellationToken token)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
             if (onCompleted == null)
-                throw new ArgumentNullException("onCompleted");
+                throw new ArgumentNullException(nameof(onCompleted));
 
             source.Subscribe_(new AnonymousObserver<T>(onNext, Stubs.Throw, onCompleted), token);
         }
@@ -243,13 +243,13 @@ namespace System
         public static void Subscribe<T>(this IObservable<T> source, Action<T> onNext, Action<Exception> onError, Action onCompleted, CancellationToken token)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
             if (onError == null)
-                throw new ArgumentNullException("onError");
+                throw new ArgumentNullException(nameof(onError));
             if (onCompleted == null)
-                throw new ArgumentNullException("onCompleted");
+                throw new ArgumentNullException(nameof(onCompleted));
 
             source.Subscribe_(new AnonymousObserver<T>(onNext, onError, onCompleted), token);
         }
@@ -306,9 +306,9 @@ namespace System
         public static IDisposable SubscribeSafe<T>(this IObservable<T> source, IObserver<T> observer)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             //
             // The following types are white-listed and should not exhibit exceptional behavior

+ 26 - 26
Rx.NET/Source/System.Reactive.Core/Observer.Extensions.cs

@@ -22,7 +22,7 @@ namespace System.Reactive
         public static IObserver<T> ToObserver<T>(this Action<Notification<T>> handler)
         {
             if (handler == null)
-                throw new ArgumentNullException("handler");
+                throw new ArgumentNullException(nameof(handler));
 
             return new AnonymousObserver<T>(
                 x => handler(Notification.CreateOnNext<T>(x)),
@@ -42,7 +42,7 @@ namespace System.Reactive
         public static Action<Notification<T>> ToNotifier<T>(this IObserver<T> observer)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             return n => n.Accept(observer);
         }      
@@ -57,7 +57,7 @@ namespace System.Reactive
         public static IObserver<T> Create<T>(Action<T> onNext)
         {
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
 
             return new AnonymousObserver<T>(onNext);
         }
@@ -73,9 +73,9 @@ namespace System.Reactive
         public static IObserver<T> Create<T>(Action<T> onNext, Action<Exception> onError)
         {
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
             if (onError == null)
-                throw new ArgumentNullException("onError");
+                throw new ArgumentNullException(nameof(onError));
 
             return new AnonymousObserver<T>(onNext, onError);
         }
@@ -91,9 +91,9 @@ namespace System.Reactive
         public static IObserver<T> Create<T>(Action<T> onNext, Action onCompleted)
         {
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
             if (onCompleted == null)
-                throw new ArgumentNullException("onCompleted");
+                throw new ArgumentNullException(nameof(onCompleted));
 
             return new AnonymousObserver<T>(onNext, onCompleted);
         }
@@ -110,11 +110,11 @@ namespace System.Reactive
         public static IObserver<T> Create<T>(Action<T> onNext, Action<Exception> onError, Action onCompleted)
         {
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
             if (onError == null)
-                throw new ArgumentNullException("onError");
+                throw new ArgumentNullException(nameof(onError));
             if (onCompleted == null)
-                throw new ArgumentNullException("onCompleted");
+                throw new ArgumentNullException(nameof(onCompleted));
 
             return new AnonymousObserver<T>(onNext, onError, onCompleted);
         }
@@ -129,7 +129,7 @@ namespace System.Reactive
         public static IObserver<T> AsObserver<T>(this IObserver<T> observer)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             return new AnonymousObserver<T>(observer.OnNext, observer.OnError, observer.OnCompleted);
         }
@@ -145,7 +145,7 @@ namespace System.Reactive
         public static IObserver<T> Checked<T>(this IObserver<T> observer)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             return new CheckedObserver<T>(observer);
         }
@@ -166,7 +166,7 @@ namespace System.Reactive
         public static IObserver<T> Synchronize<T>(IObserver<T> observer)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             return new SynchronizedObserver<T>(observer, new object());
         }
@@ -188,7 +188,7 @@ namespace System.Reactive
         public static IObserver<T> Synchronize<T>(IObserver<T> observer, bool preventReentrancy)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             if (preventReentrancy)
                 return new AsyncLockObserver<T>(observer, new AsyncLock());
@@ -214,9 +214,9 @@ namespace System.Reactive
         public static IObserver<T> Synchronize<T>(IObserver<T> observer, object gate)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
             if (gate == null)
-                throw new ArgumentNullException("gate");
+                throw new ArgumentNullException(nameof(gate));
 
             return new SynchronizedObserver<T>(observer, gate);
         }
@@ -233,9 +233,9 @@ namespace System.Reactive
         public static IObserver<T> Synchronize<T>(IObserver<T> observer, AsyncLock asyncLock)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
             if (asyncLock == null)
-                throw new ArgumentNullException("asyncLock");
+                throw new ArgumentNullException(nameof(asyncLock));
 
             return new AsyncLockObserver<T>(observer, asyncLock);
         }
@@ -251,9 +251,9 @@ namespace System.Reactive
         public static IObserver<T> NotifyOn<T>(this IObserver<T> observer, IScheduler scheduler)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return new ObserveOnObserver<T>(scheduler, observer, null);
         }
@@ -270,9 +270,9 @@ namespace System.Reactive
         public static IObserver<T> NotifyOn<T>(this IObserver<T> observer, SynchronizationContext context)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
             if (context == null)
-                throw new ArgumentNullException("context");
+                throw new ArgumentNullException(nameof(context));
 
             return new ObserveOnObserver<T>(new SynchronizationContextScheduler(context), observer, null);
         }
@@ -289,7 +289,7 @@ namespace System.Reactive
         public static IProgress<T> ToProgress<T>(this IObserver<T> observer)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             return new AnonymousProgress<T>(observer.OnNext);
         }
@@ -305,9 +305,9 @@ namespace System.Reactive
         public static IProgress<T> ToProgress<T>(this IObserver<T> observer, IScheduler scheduler)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return new AnonymousProgress<T>(new ObserveOnObserver<T>(scheduler, observer, null).OnNext);
         }
@@ -337,7 +337,7 @@ namespace System.Reactive
         public static IObserver<T> ToObserver<T>(this IProgress<T> progress)
         {
             if (progress == null)
-                throw new ArgumentNullException("progress");
+                throw new ArgumentNullException(nameof(progress));
 
             return new AnonymousObserver<T>(progress.Report);
         }

+ 1 - 1
Rx.NET/Source/System.Reactive.Core/Reactive/AnonymousObservable.cs

@@ -22,7 +22,7 @@ namespace System.Reactive
         public AnonymousObservable(Func<IObserver<T>, IDisposable> subscribe)
         {
             if (subscribe == null)
-                throw new ArgumentNullException("subscribe");
+                throw new ArgumentNullException(nameof(subscribe));
 
             _subscribe = subscribe;
         }

+ 3 - 3
Rx.NET/Source/System.Reactive.Core/Reactive/AnonymousObserver.cs

@@ -24,11 +24,11 @@ namespace System.Reactive
         public AnonymousObserver(Action<T> onNext, Action<Exception> onError, Action onCompleted)
         {
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
             if (onError == null)
-                throw new ArgumentNullException("onError");
+                throw new ArgumentNullException(nameof(onError));
             if (onCompleted == null)
-                throw new ArgumentNullException("onCompleted");
+                throw new ArgumentNullException(nameof(onCompleted));
 
             _onNext = onNext;
             _onError = onError;

+ 1 - 1
Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/AsyncLock.cs

@@ -25,7 +25,7 @@ namespace System.Reactive.Concurrency
         public void Wait(Action action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var isOwner = false;
             lock (queue)

+ 1 - 1
Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/ConcurrencyAbstractionLayer.Default.cs

@@ -25,7 +25,7 @@ namespace System.Reactive.Concurrency
         public IDisposable StartPeriodicTimer(Action action, TimeSpan period)
         {
             if (period < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("period");
+                throw new ArgumentOutOfRangeException(nameof(period));
 
             //
             // The contract for periodic scheduling in Rx is that specifying TimeSpan.Zero as the period causes the scheduler to 

+ 1 - 1
Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/CurrentThreadScheduler.cs

@@ -137,7 +137,7 @@ namespace System.Reactive.Concurrency
         public override IDisposable Schedule<TState>(TState state, TimeSpan dueTime, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var dt = Time + Scheduler.Normalize(dueTime);
 

+ 5 - 5
Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/DefaultScheduler.cs

@@ -43,7 +43,7 @@ namespace System.Reactive.Concurrency
         public override IDisposable Schedule<TState>(TState state, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var d = new SingleAssignmentDisposable();
 
@@ -71,7 +71,7 @@ namespace System.Reactive.Concurrency
         public override IDisposable Schedule<TState>(TState state, TimeSpan dueTime, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var dt = Scheduler.Normalize(dueTime);
             if (dt.Ticks == 0)
@@ -104,9 +104,9 @@ namespace System.Reactive.Concurrency
         public IDisposable SchedulePeriodic<TState>(TState state, TimeSpan period, Func<TState, TState> action)
         {
             if (period < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("period");
+                throw new ArgumentOutOfRangeException(nameof(period));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var state1 = state;
             var gate = new AsyncLock();
@@ -152,7 +152,7 @@ namespace System.Reactive.Concurrency
             public IDisposable ScheduleLongRunning<TState>(TState state, Action<TState, ICancelable> action)
             {
                 if (action == null)
-                    throw new ArgumentNullException("action");
+                    throw new ArgumentNullException(nameof(action));
 
                 var cancel = new BooleanDisposable();
 

+ 4 - 4
Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/ImmediateScheduler.cs

@@ -38,7 +38,7 @@ namespace System.Reactive.Concurrency
         public override IDisposable Schedule<TState>(TState state, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return action(new AsyncLockScheduler(), state);
         }
@@ -55,7 +55,7 @@ namespace System.Reactive.Concurrency
         public override IDisposable Schedule<TState>(TState state, TimeSpan dueTime, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var dt = Scheduler.Normalize(dueTime);
             if (dt.Ticks > 0)
@@ -73,7 +73,7 @@ namespace System.Reactive.Concurrency
             public override IDisposable Schedule<TState>(TState state, Func<IScheduler, TState, IDisposable> action)
             {
                 if (action == null)
-                    throw new ArgumentNullException("action");
+                    throw new ArgumentNullException(nameof(action));
 
                 var m = new SingleAssignmentDisposable();
 
@@ -92,7 +92,7 @@ namespace System.Reactive.Concurrency
             public override IDisposable Schedule<TState>(TState state, TimeSpan dueTime, Func<IScheduler, TState, IDisposable> action)
             {
                 if (action == null)
-                    throw new ArgumentNullException("action");
+                    throw new ArgumentNullException(nameof(action));
 
                 if (dueTime.Ticks <= 0)
                     return Schedule<TState>(state, action);

+ 2 - 2
Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/LocalScheduler.cs

@@ -30,7 +30,7 @@ namespace System.Reactive.Concurrency
         public virtual IDisposable Schedule<TState>(TState state, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return Schedule(state, TimeSpan.Zero, action);
         }
@@ -57,7 +57,7 @@ namespace System.Reactive.Concurrency
         public virtual IDisposable Schedule<TState>(TState state, DateTimeOffset dueTime, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return Enqueue(state, dueTime, action);
         }

+ 3 - 3
Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/ScheduledItem.cs

@@ -27,7 +27,7 @@ namespace System.Reactive.Concurrency
         protected ScheduledItem(TAbsolute dueTime, IComparer<TAbsolute> comparer)
         {
             if (comparer == null)
-                throw new ArgumentNullException("comparer");
+                throw new ArgumentNullException(nameof(comparer));
 
             _dueTime = dueTime;
             _comparer = comparer;
@@ -212,9 +212,9 @@ namespace System.Reactive.Concurrency
             : base(dueTime, comparer)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             _scheduler = scheduler;
             _state = state;

+ 30 - 30
Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/Scheduler.Async.cs

@@ -21,7 +21,7 @@ namespace System.Reactive.Concurrency
         public static SchedulerOperation Yield(this IScheduler scheduler)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return new SchedulerOperation(a => scheduler.Schedule(a), scheduler.GetCancellationToken());
         }
@@ -37,7 +37,7 @@ namespace System.Reactive.Concurrency
         public static SchedulerOperation Yield(this IScheduler scheduler, CancellationToken cancellationToken)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return new SchedulerOperation(a => scheduler.Schedule(a), cancellationToken);
         }
@@ -53,7 +53,7 @@ namespace System.Reactive.Concurrency
         public static SchedulerOperation Sleep(this IScheduler scheduler, TimeSpan dueTime)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return new SchedulerOperation(a => scheduler.Schedule(dueTime, a), scheduler.GetCancellationToken());
         }
@@ -70,7 +70,7 @@ namespace System.Reactive.Concurrency
         public static SchedulerOperation Sleep(this IScheduler scheduler, TimeSpan dueTime, CancellationToken cancellationToken)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return new SchedulerOperation(a => scheduler.Schedule(dueTime, a), cancellationToken);
         }
@@ -86,7 +86,7 @@ namespace System.Reactive.Concurrency
         public static SchedulerOperation Sleep(this IScheduler scheduler, DateTimeOffset dueTime)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return new SchedulerOperation(a => scheduler.Schedule(dueTime, a), scheduler.GetCancellationToken());
         }
@@ -103,7 +103,7 @@ namespace System.Reactive.Concurrency
         public static SchedulerOperation Sleep(this IScheduler scheduler, DateTimeOffset dueTime, CancellationToken cancellationToken)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return new SchedulerOperation(a => scheduler.Schedule(dueTime, a), cancellationToken);
         }
@@ -120,9 +120,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable ScheduleAsync<TState>(this IScheduler scheduler, TState state, Func<IScheduler, TState, CancellationToken, Task> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return ScheduleAsync_<TState>(scheduler, state, action);
         }
@@ -139,9 +139,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable ScheduleAsync<TState>(this IScheduler scheduler, TState state, Func<IScheduler, TState, CancellationToken, Task<IDisposable>> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return ScheduleAsync_<TState>(scheduler, state, action);
         }
@@ -156,9 +156,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable ScheduleAsync(this IScheduler scheduler, Func<IScheduler, CancellationToken, Task> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return ScheduleAsync_(scheduler, default(object), (self, o, ct) => action(self, ct));
         }
@@ -173,9 +173,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable ScheduleAsync(this IScheduler scheduler, Func<IScheduler, CancellationToken, Task<IDisposable>> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return ScheduleAsync_(scheduler, default(object), (self, o, ct) => action(self, ct));
         }
@@ -193,9 +193,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable ScheduleAsync<TState>(this IScheduler scheduler, TState state, TimeSpan dueTime, Func<IScheduler, TState, CancellationToken, Task> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return ScheduleAsync_(scheduler, state, dueTime, action);
         }
@@ -213,9 +213,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable ScheduleAsync<TState>(this IScheduler scheduler, TState state, TimeSpan dueTime, Func<IScheduler, TState, CancellationToken, Task<IDisposable>> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return ScheduleAsync_(scheduler, state, dueTime, action);
         }
@@ -231,9 +231,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable ScheduleAsync(this IScheduler scheduler, TimeSpan dueTime, Func<IScheduler, CancellationToken, Task> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return ScheduleAsync_(scheduler, default(object), dueTime, (self, o, ct) => action(self, ct));
         }
@@ -249,9 +249,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable ScheduleAsync(this IScheduler scheduler, TimeSpan dueTime, Func<IScheduler, CancellationToken, Task<IDisposable>> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return ScheduleAsync_(scheduler, default(object), dueTime, (self, o, ct) => action(self, ct));
         }
@@ -269,9 +269,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable ScheduleAsync<TState>(this IScheduler scheduler, TState state, DateTimeOffset dueTime, Func<IScheduler, TState, CancellationToken, Task> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return ScheduleAsync_(scheduler, state, dueTime, action);
         }
@@ -289,9 +289,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable ScheduleAsync<TState>(this IScheduler scheduler, TState state, DateTimeOffset dueTime, Func<IScheduler, TState, CancellationToken, Task<IDisposable>> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return ScheduleAsync_(scheduler, state, dueTime, action);
         }
@@ -307,9 +307,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable ScheduleAsync(this IScheduler scheduler, DateTimeOffset dueTime, Func<IScheduler, CancellationToken, Task> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return ScheduleAsync_(scheduler, default(object), dueTime, (self, o, ct) => action(self, ct));
         }
@@ -325,9 +325,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable ScheduleAsync(this IScheduler scheduler, DateTimeOffset dueTime, Func<IScheduler, CancellationToken, Task<IDisposable>> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return ScheduleAsync_(scheduler, default(object), dueTime, (self, o, ct) => action(self, ct));
         }

+ 12 - 12
Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/Scheduler.Recursive.cs

@@ -19,9 +19,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable Schedule(this IScheduler scheduler, Action<Action> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return scheduler.Schedule(action, (_action, self) => _action(() => self(_action)));
         }
@@ -38,9 +38,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable Schedule<TState>(this IScheduler scheduler, TState state, Action<TState, Action<TState>> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return scheduler.Schedule(new Pair<TState, Action<TState, Action<TState>>> { First = state, Second = action }, InvokeRec1);
         }
@@ -97,9 +97,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable Schedule(this IScheduler scheduler, TimeSpan dueTime, Action<Action<TimeSpan>> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return scheduler.Schedule(action, dueTime, (_action, self) => _action(dt => self(_action, dt)));
         }
@@ -117,9 +117,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable Schedule<TState>(this IScheduler scheduler, TState state, TimeSpan dueTime, Action<TState, Action<TState, TimeSpan>> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return scheduler.Schedule(new Pair<TState, Action<TState, Action<TState, TimeSpan>>> { First = state, Second = action }, dueTime, InvokeRec2);
         }
@@ -176,9 +176,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable Schedule(this IScheduler scheduler, DateTimeOffset dueTime, Action<Action<DateTimeOffset>> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return scheduler.Schedule(action, dueTime, (_action, self) => _action(dt => self(_action, dt)));
         }
@@ -196,9 +196,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable Schedule<TState>(this IScheduler scheduler, TState state, DateTimeOffset dueTime, Action<TState, Action<TState, DateTimeOffset>> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return scheduler.Schedule(new Pair<TState, Action<TState, Action<TState, DateTimeOffset>>> { First = state, Second = action }, dueTime, InvokeRec3);
         }

+ 10 - 10
Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/Scheduler.Services.Emulation.cs

@@ -29,11 +29,11 @@ namespace System.Reactive.Concurrency
         public static IDisposable SchedulePeriodic<TState>(this IScheduler scheduler, TState state, TimeSpan period, Func<TState, TState> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (period < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("period");
+                throw new ArgumentOutOfRangeException(nameof(period));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return SchedulePeriodic_(scheduler, state, period, action);
         }
@@ -55,11 +55,11 @@ namespace System.Reactive.Concurrency
         public static IDisposable SchedulePeriodic<TState>(this IScheduler scheduler, TState state, TimeSpan period, Action<TState> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (period < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("period");
+                throw new ArgumentOutOfRangeException(nameof(period));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return SchedulePeriodic_(scheduler, state, period, state_ => { action(state_); return state_; });
         }
@@ -79,11 +79,11 @@ namespace System.Reactive.Concurrency
         public static IDisposable SchedulePeriodic(this IScheduler scheduler, TimeSpan period, Action action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (period < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("period");
+                throw new ArgumentOutOfRangeException(nameof(period));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return SchedulePeriodic_(scheduler, action, period, a => { a(); return a; });
         }
@@ -100,7 +100,7 @@ namespace System.Reactive.Concurrency
         public static IStopwatch StartStopwatch(this IScheduler scheduler)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             //
             // All schedulers deriving from LocalScheduler will automatically pick up this

+ 8 - 8
Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/Scheduler.Simple.cs

@@ -19,9 +19,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable Schedule(this IScheduler scheduler, Action action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return scheduler.Schedule(action, Invoke);
         }
@@ -37,9 +37,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable Schedule(this IScheduler scheduler, TimeSpan dueTime, Action action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return scheduler.Schedule(action, dueTime, Invoke);
         }
@@ -55,9 +55,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable Schedule(this IScheduler scheduler, DateTimeOffset dueTime, Action action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return scheduler.Schedule(action, dueTime, Invoke);
         }
@@ -72,9 +72,9 @@ namespace System.Reactive.Concurrency
         public static IDisposable ScheduleLongRunning(this ISchedulerLongRunning scheduler, Action<ICancelable> action)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return scheduler.ScheduleLongRunning(action, (a, c) => a(c));
         }

+ 5 - 5
Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/Scheduler.Wrappers.cs

@@ -17,7 +17,7 @@ namespace System.Reactive.Concurrency
         public static IScheduler DisableOptimizations(this IScheduler scheduler)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return new DisableOptimizationsScheduler(scheduler);
         }
@@ -32,9 +32,9 @@ namespace System.Reactive.Concurrency
         public static IScheduler DisableOptimizations(this IScheduler scheduler, params Type[] optimizationInterfaces)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (optimizationInterfaces == null)
-                throw new ArgumentNullException("optimizationInterfaces");
+                throw new ArgumentNullException(nameof(optimizationInterfaces));
 
             return new DisableOptimizationsScheduler(scheduler, optimizationInterfaces);
         }
@@ -51,9 +51,9 @@ namespace System.Reactive.Concurrency
             where TException : Exception
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (handler == null)
-                throw new ArgumentNullException("handler");
+                throw new ArgumentNullException(nameof(handler));
 
             return new CatchScheduler<TException>(scheduler, handler);
         }

+ 1 - 1
Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/SchedulerOperation.cs

@@ -97,7 +97,7 @@ namespace System.Reactive.Concurrency
         public void OnCompleted(Action continuation)
         {
             if (continuation == null)
-                throw new ArgumentNullException("continuation");
+                throw new ArgumentNullException(nameof(continuation));
 
             if (_continuation != null)
                 throw new InvalidOperationException(Strings_Core.SCHEDULER_OPERATION_ALREADY_AWAITED);

+ 1 - 1
Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/SchedulerQueue.cs

@@ -33,7 +33,7 @@ namespace System.Reactive.Concurrency
         public SchedulerQueue(int capacity)
         {
             if (capacity < 0)
-                throw new ArgumentOutOfRangeException("capacity");
+                throw new ArgumentOutOfRangeException(nameof(capacity));
 
             _queue = new PriorityQueue<ScheduledItem<TAbsolute>>(capacity);
         }

+ 3 - 3
Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/SchedulerWrapper.cs

@@ -31,7 +31,7 @@ namespace System.Reactive.Concurrency
         public IDisposable Schedule<TState>(TState state, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return _scheduler.Schedule(state, Wrap(action));
         }
@@ -39,7 +39,7 @@ namespace System.Reactive.Concurrency
         public IDisposable Schedule<TState>(TState state, TimeSpan dueTime, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return _scheduler.Schedule(state, dueTime, Wrap(action));
         }
@@ -47,7 +47,7 @@ namespace System.Reactive.Concurrency
         public IDisposable Schedule<TState>(TState state, DateTimeOffset dueTime, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return _scheduler.Schedule(state, dueTime, Wrap(action));
         }

+ 11 - 11
Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/Synchronization.cs

@@ -32,9 +32,9 @@ namespace System.Reactive.Concurrency
         public static IObservable<TSource> SubscribeOn<TSource>(IObservable<TSource> source, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return new AnonymousObservable<TSource>(observer =>
             {
@@ -67,9 +67,9 @@ namespace System.Reactive.Concurrency
         public static IObservable<TSource> SubscribeOn<TSource>(IObservable<TSource> source, SynchronizationContext context)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (context == null)
-                throw new ArgumentNullException("context");
+                throw new ArgumentNullException(nameof(context));
 
             return new AnonymousObservable<TSource>(observer =>
             {
@@ -99,9 +99,9 @@ namespace System.Reactive.Concurrency
         public static IObservable<TSource> ObserveOn<TSource>(IObservable<TSource> source, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
 #if !NO_PERF
             return new ObserveOn<TSource>(source, scheduler);
@@ -122,9 +122,9 @@ namespace System.Reactive.Concurrency
         public static IObservable<TSource> ObserveOn<TSource>(IObservable<TSource> source, SynchronizationContext context)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (context == null)
-                throw new ArgumentNullException("context");
+                throw new ArgumentNullException(nameof(context));
 
 #if !NO_PERF
             return new ObserveOn<TSource>(source, context);
@@ -169,7 +169,7 @@ namespace System.Reactive.Concurrency
         public static IObservable<TSource> Synchronize<TSource>(IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
 #if !NO_PERF
             return new Synchronize<TSource>(source);
@@ -193,9 +193,9 @@ namespace System.Reactive.Concurrency
         public static IObservable<TSource> Synchronize<TSource>(IObservable<TSource> source, object gate)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (gate == null)
-                throw new ArgumentNullException("gate");
+                throw new ArgumentNullException(nameof(gate));
 
 #if !NO_PERF
             return new Synchronize<TSource>(source, gate);

+ 4 - 4
Rx.NET/Source/System.Reactive.Core/Reactive/Concurrency/SynchronizationContextScheduler.cs

@@ -24,7 +24,7 @@ namespace System.Reactive.Concurrency
         public SynchronizationContextScheduler(SynchronizationContext context)
         {
             if (context == null)
-                throw new ArgumentNullException("context");
+                throw new ArgumentNullException(nameof(context));
             
             _context = context;
             _alwaysPost = true;
@@ -39,7 +39,7 @@ namespace System.Reactive.Concurrency
         public SynchronizationContextScheduler(SynchronizationContext context, bool alwaysPost)
         {
             if (context == null)
-                throw new ArgumentNullException("context");
+                throw new ArgumentNullException(nameof(context));
 
             _context = context;
             _alwaysPost = alwaysPost;
@@ -56,7 +56,7 @@ namespace System.Reactive.Concurrency
         public override IDisposable Schedule<TState>(TState state, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var d = new SingleAssignmentDisposable();
 
@@ -88,7 +88,7 @@ namespace System.Reactive.Concurrency
         public override IDisposable Schedule<TState>(TState state, TimeSpan dueTime, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var dt = Scheduler.Normalize(dueTime);
             if (dt.Ticks == 0)

+ 1 - 1
Rx.NET/Source/System.Reactive.Core/Reactive/Disposables/CancellationDisposable.cs

@@ -22,7 +22,7 @@ namespace System.Reactive.Disposables
         public CancellationDisposable(CancellationTokenSource cts)
         {
             if (cts == null)
-                throw new ArgumentNullException("cts");
+                throw new ArgumentNullException(nameof(cts));
 
             _cts = cts;
         }

+ 8 - 8
Rx.NET/Source/System.Reactive.Core/Reactive/Disposables/CompositeDisposable.cs

@@ -36,7 +36,7 @@ namespace System.Reactive.Disposables
         public CompositeDisposable(int capacity)
         {
             if (capacity < 0)
-                throw new ArgumentOutOfRangeException("capacity");
+                throw new ArgumentOutOfRangeException(nameof(capacity));
 
             _disposables = new List<IDisposable>(capacity);
         }
@@ -61,7 +61,7 @@ namespace System.Reactive.Disposables
         public CompositeDisposable(IEnumerable<IDisposable> disposables)
         {
             if (disposables == null)
-                throw new ArgumentNullException("disposables");
+                throw new ArgumentNullException(nameof(disposables));
 
             _disposables = new List<IDisposable>(disposables);
             
@@ -69,7 +69,7 @@ namespace System.Reactive.Disposables
             // Doing this on the list to avoid duplicate enumeration of disposables.
             //
             if (_disposables.Contains(null))
-                throw new ArgumentException(Strings_Core.DISPOSABLES_CANT_CONTAIN_NULL, "disposables");
+                throw new ArgumentException(Strings_Core.DISPOSABLES_CANT_CONTAIN_NULL, nameof(disposables));
             
             _count = _disposables.Count;
         }
@@ -93,7 +93,7 @@ namespace System.Reactive.Disposables
         public void Add(IDisposable item)
         {
             if (item == null)
-                throw new ArgumentNullException("item");
+                throw new ArgumentNullException(nameof(item));
 
             var shouldDispose = false;
             lock (_gate)
@@ -118,7 +118,7 @@ namespace System.Reactive.Disposables
         public bool Remove(IDisposable item)
         {
             if (item == null)
-                throw new ArgumentNullException("item");
+                throw new ArgumentNullException(nameof(item));
 
             var shouldDispose = false;
 
@@ -211,7 +211,7 @@ namespace System.Reactive.Disposables
         public bool Contains(IDisposable item)
         {
             if (item == null)
-                throw new ArgumentNullException("item");
+                throw new ArgumentNullException(nameof(item));
 
             lock (_gate)
             {
@@ -229,9 +229,9 @@ namespace System.Reactive.Disposables
         public void CopyTo(IDisposable[] array, int arrayIndex)
         {
             if (array == null)
-                throw new ArgumentNullException("array");
+                throw new ArgumentNullException(nameof(array));
             if (arrayIndex < 0 || arrayIndex >= array.Length)
-                throw new ArgumentOutOfRangeException("arrayIndex");
+                throw new ArgumentOutOfRangeException(nameof(arrayIndex));
 
             lock (_gate)
             {

+ 2 - 2
Rx.NET/Source/System.Reactive.Core/Reactive/Disposables/ContextDisposable.cs

@@ -25,9 +25,9 @@ namespace System.Reactive.Disposables
         public ContextDisposable(SynchronizationContext context, IDisposable disposable)
         {
             if (context == null)
-                throw new ArgumentNullException("context");
+                throw new ArgumentNullException(nameof(context));
             if (disposable == null)
-                throw new ArgumentNullException("disposable");
+                throw new ArgumentNullException(nameof(disposable));
 
             _context = context;
             _disposable = disposable;

+ 1 - 1
Rx.NET/Source/System.Reactive.Core/Reactive/Disposables/Disposable.cs

@@ -26,7 +26,7 @@ namespace System.Reactive.Disposables
         public static IDisposable Create(Action dispose)
         {
             if (dispose == null)
-                throw new ArgumentNullException("dispose");
+                throw new ArgumentNullException(nameof(dispose));
 
             return new AnonymousDisposable(dispose);
         }

+ 1 - 1
Rx.NET/Source/System.Reactive.Core/Reactive/Disposables/RefCountDisposable.cs

@@ -37,7 +37,7 @@ namespace System.Reactive.Disposables
         public RefCountDisposable(IDisposable disposable, bool throwWhenDisposed)
         {
             if (disposable == null)
-                throw new ArgumentNullException("disposable");
+                throw new ArgumentNullException(nameof(disposable));
 
             _disposable = disposable;
             _isPrimaryDisposed = false;

+ 2 - 2
Rx.NET/Source/System.Reactive.Core/Reactive/Disposables/ScheduledDisposable.cs

@@ -24,9 +24,9 @@ namespace System.Reactive.Disposables
         public ScheduledDisposable(IScheduler scheduler, IDisposable disposable)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (disposable == null)
-                throw new ArgumentNullException("disposable");
+                throw new ArgumentNullException(nameof(disposable));
 
             _scheduler = scheduler;
             _disposable = disposable;

+ 5 - 5
Rx.NET/Source/System.Reactive.Core/Reactive/Disposables/StableCompositeDisposable.cs

@@ -21,9 +21,9 @@ namespace System.Reactive.Disposables
         public static ICancelable Create(IDisposable disposable1, IDisposable disposable2)
         {
             if (disposable1 == null)
-                throw new ArgumentNullException("disposable1");
+                throw new ArgumentNullException(nameof(disposable1));
             if (disposable2 == null)
-                throw new ArgumentNullException("disposable2");
+                throw new ArgumentNullException(nameof(disposable2));
 
             return new Binary(disposable1, disposable2);
         }
@@ -36,7 +36,7 @@ namespace System.Reactive.Disposables
         public static ICancelable Create(params IDisposable[] disposables)
         {
             if (disposables == null)
-                throw new ArgumentNullException("disposables");
+                throw new ArgumentNullException(nameof(disposables));
 
             return new NAry(disposables);
         }
@@ -49,7 +49,7 @@ namespace System.Reactive.Disposables
         public static ICancelable Create(IEnumerable<IDisposable> disposables)
         {
             if (disposables == null)
-                throw new ArgumentNullException("disposables");
+                throw new ArgumentNullException(nameof(disposables));
 
             return new NAry(disposables);
         }
@@ -123,7 +123,7 @@ namespace System.Reactive.Disposables
                 // Doing this on the list to avoid duplicate enumeration of disposables.
                 //
                 if (_disposables.Contains(null))
-                    throw new ArgumentException(Strings_Core.DISPOSABLES_CANT_CONTAIN_NULL, "disposables");
+                    throw new ArgumentException(Strings_Core.DISPOSABLES_CANT_CONTAIN_NULL, nameof(disposables));
             }
 
             public override bool IsDisposed

+ 1 - 1
Rx.NET/Source/System.Reactive.Core/Reactive/Internal/Producer.cs

@@ -35,7 +35,7 @@ namespace System.Reactive
         public IDisposable Subscribe(IObserver<TSource> observer)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             return SubscribeRaw(observer, true);
         }

+ 26 - 26
Rx.NET/Source/System.Reactive.Core/Reactive/Notification.cs

@@ -160,7 +160,7 @@ namespace System.Reactive
             public override void Accept(IObserver<T> observer)
             {
                 if (observer == null)
-                    throw new ArgumentNullException("observer");
+                    throw new ArgumentNullException(nameof(observer));
 
                 observer.OnNext(Value);
             }
@@ -173,7 +173,7 @@ namespace System.Reactive
             public override TResult Accept<TResult>(IObserver<T, TResult> observer)
             {
                 if (observer == null)
-                    throw new ArgumentNullException("observer");
+                    throw new ArgumentNullException(nameof(observer));
 
                 return observer.OnNext(Value);
             }
@@ -187,11 +187,11 @@ namespace System.Reactive
             public override void Accept(Action<T> onNext, Action<Exception> onError, Action onCompleted)
             {
                 if (onNext == null)
-                    throw new ArgumentNullException("onNext");
+                    throw new ArgumentNullException(nameof(onNext));
                 if (onError == null)
-                    throw new ArgumentNullException("onError");
+                    throw new ArgumentNullException(nameof(onError));
                 if (onCompleted == null)
-                    throw new ArgumentNullException("onCompleted");
+                    throw new ArgumentNullException(nameof(onCompleted));
 
                 onNext(Value);
             }
@@ -206,11 +206,11 @@ namespace System.Reactive
             public override TResult Accept<TResult>(Func<T, TResult> onNext, Func<Exception, TResult> onError, Func<TResult> onCompleted)
             {
                 if (onNext == null)
-                    throw new ArgumentNullException("onNext");
+                    throw new ArgumentNullException(nameof(onNext));
                 if (onError == null)
-                    throw new ArgumentNullException("onError");
+                    throw new ArgumentNullException(nameof(onError));
                 if (onCompleted == null)
-                    throw new ArgumentNullException("onCompleted");
+                    throw new ArgumentNullException(nameof(onCompleted));
 
                 return onNext(Value);
             }
@@ -294,7 +294,7 @@ namespace System.Reactive
             public override void Accept(IObserver<T> observer)
             {
                 if (observer == null)
-                    throw new ArgumentNullException("observer");
+                    throw new ArgumentNullException(nameof(observer));
 
                 observer.OnError(Exception);
             }
@@ -307,7 +307,7 @@ namespace System.Reactive
             public override TResult Accept<TResult>(IObserver<T, TResult> observer)
             {
                 if (observer == null)
-                    throw new ArgumentNullException("observer");
+                    throw new ArgumentNullException(nameof(observer));
 
                 return observer.OnError(Exception);
             }
@@ -321,11 +321,11 @@ namespace System.Reactive
             public override void Accept(Action<T> onNext, Action<Exception> onError, Action onCompleted)
             {
                 if (onNext == null)
-                    throw new ArgumentNullException("onNext");
+                    throw new ArgumentNullException(nameof(onNext));
                 if (onError == null)
-                    throw new ArgumentNullException("onError");
+                    throw new ArgumentNullException(nameof(onError));
                 if (onCompleted == null)
-                    throw new ArgumentNullException("onCompleted");
+                    throw new ArgumentNullException(nameof(onCompleted));
 
                 onError(Exception);
             }
@@ -340,11 +340,11 @@ namespace System.Reactive
             public override TResult Accept<TResult>(Func<T, TResult> onNext, Func<Exception, TResult> onError, Func<TResult> onCompleted)
             {
                 if (onNext == null)
-                    throw new ArgumentNullException("onNext");
+                    throw new ArgumentNullException(nameof(onNext));
                 if (onError == null)
-                    throw new ArgumentNullException("onError");
+                    throw new ArgumentNullException(nameof(onError));
                 if (onCompleted == null)
-                    throw new ArgumentNullException("onCompleted");
+                    throw new ArgumentNullException(nameof(onCompleted));
 
                 return onError(Exception);
             }
@@ -423,7 +423,7 @@ namespace System.Reactive
             public override void Accept(IObserver<T> observer)
             {
                 if (observer == null)
-                    throw new ArgumentNullException("observer");
+                    throw new ArgumentNullException(nameof(observer));
 
                 observer.OnCompleted();
             }
@@ -436,7 +436,7 @@ namespace System.Reactive
             public override TResult Accept<TResult>(IObserver<T, TResult> observer)
             {
                 if (observer == null)
-                    throw new ArgumentNullException("observer");
+                    throw new ArgumentNullException(nameof(observer));
 
                 return observer.OnCompleted();
             }
@@ -450,11 +450,11 @@ namespace System.Reactive
             public override void Accept(Action<T> onNext, Action<Exception> onError, Action onCompleted)
             {
                 if (onNext == null)
-                    throw new ArgumentNullException("onNext");
+                    throw new ArgumentNullException(nameof(onNext));
                 if (onError == null)
-                    throw new ArgumentNullException("onError");
+                    throw new ArgumentNullException(nameof(onError));
                 if (onCompleted == null)
-                    throw new ArgumentNullException("onCompleted");
+                    throw new ArgumentNullException(nameof(onCompleted));
 
                 onCompleted();
             }
@@ -469,11 +469,11 @@ namespace System.Reactive
             public override TResult Accept<TResult>(Func<T, TResult> onNext, Func<Exception, TResult> onError, Func<TResult> onCompleted)
             {
                 if (onNext == null)
-                    throw new ArgumentNullException("onNext");
+                    throw new ArgumentNullException(nameof(onNext));
                 if (onError == null)
-                    throw new ArgumentNullException("onError");
+                    throw new ArgumentNullException(nameof(onError));
                 if (onCompleted == null)
-                    throw new ArgumentNullException("onCompleted");
+                    throw new ArgumentNullException(nameof(onCompleted));
 
                 return onCompleted();
             }
@@ -593,7 +593,7 @@ namespace System.Reactive
         public IObservable<T> ToObservable(IScheduler scheduler)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return new AnonymousObservable<T>(observer => scheduler.Schedule(() =>
             {
@@ -630,7 +630,7 @@ namespace System.Reactive
         public static Notification<T> CreateOnError<T>(Exception error)
         {
             if (error == null)
-                throw new ArgumentNullException("error");
+                throw new ArgumentNullException(nameof(error));
 
             return new Notification<T>.OnErrorNotification(error);
         }

+ 1 - 1
Rx.NET/Source/System.Reactive.Core/Reactive/ObservableBase.cs

@@ -27,7 +27,7 @@ namespace System.Reactive
         public IDisposable Subscribe(IObserver<T> observer)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             var autoDetachObserver = new AutoDetachObserver<T>(observer);
             

+ 1 - 1
Rx.NET/Source/System.Reactive.Core/Reactive/ObserverBase.cs

@@ -48,7 +48,7 @@ namespace System.Reactive
         public void OnError(Exception error)
         {
             if (error == null)
-                throw new ArgumentNullException("error");
+                throw new ArgumentNullException(nameof(error));
 
             if (Interlocked.Exchange(ref isStopped, 1) == 0)
             {

+ 20 - 20
Rx.NET/Source/System.Reactive.Experimental/Reactive/Linq/ObservableEx.cs

@@ -27,7 +27,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Create<TResult>(Func<IObserver<TResult>, IEnumerable<IObservable<object>>> iteratorMethod)
         {
             if (iteratorMethod == null)
-                throw new ArgumentNullException("iteratorMethod");
+                throw new ArgumentNullException(nameof(iteratorMethod));
 
             return s_impl.Create<TResult>(iteratorMethod);
         }
@@ -42,7 +42,7 @@ namespace System.Reactive.Linq
         public static IObservable<Unit> Create(Func<IEnumerable<IObservable<object>>> iteratorMethod)
         {
             if (iteratorMethod == null)
-                throw new ArgumentNullException("iteratorMethod");
+                throw new ArgumentNullException(nameof(iteratorMethod));
 
             return s_impl.Create(iteratorMethod);
         }
@@ -64,11 +64,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Expand<TSource>(this IObservable<TSource> source, Func<TSource, IObservable<TSource>> selector, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Expand<TSource>(source, selector, scheduler);
         }
@@ -85,9 +85,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Expand<TSource>(this IObservable<TSource> source, Func<TSource, IObservable<TSource>> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return s_impl.Expand<TSource>(source, selector);
         }
@@ -111,11 +111,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> ForkJoin<TSource1, TSource2, TResult>(this IObservable<TSource1> first, IObservable<TSource2> second, Func<TSource1, TSource2, TResult> resultSelector)
         {
             if (first == null)
-                throw new ArgumentNullException("first");
+                throw new ArgumentNullException(nameof(first));
             if (second == null)
-                throw new ArgumentNullException("second");
+                throw new ArgumentNullException(nameof(second));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
 
             return s_impl.ForkJoin<TSource1, TSource2, TResult>(first, second, resultSelector);
         }
@@ -131,7 +131,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource[]> ForkJoin<TSource>(params IObservable<TSource>[] sources)
         {
             if (sources == null)
-                throw new ArgumentNullException("sources");
+                throw new ArgumentNullException(nameof(sources));
 
             return s_impl.ForkJoin<TSource>(sources);
         }
@@ -147,7 +147,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource[]> ForkJoin<TSource>(this IEnumerable<IObservable<TSource>> sources)
         {
             if (sources == null)
-                throw new ArgumentNullException("sources");
+                throw new ArgumentNullException(nameof(sources));
 
             return s_impl.ForkJoin<TSource>(sources);
         }
@@ -170,9 +170,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Let<TSource, TResult>(this IObservable<TSource> source, Func<IObservable<TSource>, IObservable<TResult>> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return s_impl.Let<TSource, TResult>(source, selector);
         }
@@ -188,11 +188,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> ManySelect<TSource, TResult>(this IObservable<TSource> source, Func<IObservable<TSource>, TResult> selector, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.ManySelect<TSource, TResult>(source, selector, scheduler);
         }
@@ -204,9 +204,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> ManySelect<TSource, TResult>(this IObservable<TSource> source, Func<IObservable<TSource>, TResult> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return s_impl.ManySelect<TSource, TResult>(source, selector);
         }
@@ -226,7 +226,7 @@ namespace System.Reactive.Linq
         public static ListObservable<TSource> ToListObservable<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.ToListObservable<TSource>(source);
         }

+ 2 - 2
Rx.NET/Source/System.Reactive.Experimental/Reactive/ListObservable.cs

@@ -30,7 +30,7 @@ namespace System.Reactive
         public ListObservable(IObservable<T> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             subscription = source.Subscribe(results.Add, subject.OnError, subject.OnCompleted);
         }
@@ -199,7 +199,7 @@ namespace System.Reactive
         public IDisposable Subscribe(IObserver<object> observer)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             return StableCompositeDisposable.Create(subscription, subject.Subscribe(observer));
         }

+ 1 - 1
Rx.NET/Source/System.Reactive.Linq/Reactive/Concurrency/HistoricalScheduler.cs

@@ -135,7 +135,7 @@ namespace System.Reactive.Concurrency
         public override IDisposable ScheduleAbsolute<TState>(TState state, DateTimeOffset dueTime, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var si = default(ScheduledItem<DateTimeOffset, TState>);
 

+ 4 - 4
Rx.NET/Source/System.Reactive.Linq/Reactive/Concurrency/VirtualTimeScheduler.Extensions.cs

@@ -25,9 +25,9 @@ namespace System.Reactive.Concurrency
             where TAbsolute : IComparable<TAbsolute>
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return scheduler.ScheduleRelative(action, dueTime, Invoke);
         }
@@ -46,9 +46,9 @@ namespace System.Reactive.Concurrency
             where TAbsolute : IComparable<TAbsolute>
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return scheduler.ScheduleAbsolute(action, dueTime, Invoke);
         }

+ 9 - 9
Rx.NET/Source/System.Reactive.Linq/Reactive/Concurrency/VirtualTimeScheduler.cs

@@ -33,7 +33,7 @@ namespace System.Reactive.Concurrency
         protected VirtualTimeSchedulerBase(TAbsolute initialClock, IComparer<TAbsolute> comparer)
         {
             if (comparer == null)
-                throw new ArgumentNullException("comparer");
+                throw new ArgumentNullException(nameof(comparer));
 
             Clock = initialClock;
             Comparer = comparer;
@@ -100,7 +100,7 @@ namespace System.Reactive.Concurrency
         public IDisposable ScheduleRelative<TState>(TState state, TRelative dueTime, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var runAt = Add(Clock, dueTime);
 
@@ -118,7 +118,7 @@ namespace System.Reactive.Concurrency
         public IDisposable Schedule<TState>(TState state, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return ScheduleAbsolute(state, Clock, action);
         }
@@ -135,7 +135,7 @@ namespace System.Reactive.Concurrency
         public IDisposable Schedule<TState>(TState state, TimeSpan dueTime, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return ScheduleRelative(state, ToRelative(dueTime), action);
         }
@@ -152,7 +152,7 @@ namespace System.Reactive.Concurrency
         public IDisposable Schedule<TState>(TState state, DateTimeOffset dueTime, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return ScheduleRelative(state, ToRelative(dueTime - Now), action);
         }
@@ -198,7 +198,7 @@ namespace System.Reactive.Concurrency
         {
             var dueToClock = Comparer.Compare(time, Clock);
             if (dueToClock < 0)
-                throw new ArgumentOutOfRangeException("time");
+                throw new ArgumentOutOfRangeException(nameof(time));
 
             if (dueToClock == 0)
                 return;
@@ -239,7 +239,7 @@ namespace System.Reactive.Concurrency
 
             var dueToClock = Comparer.Compare(dt, Clock);
             if (dueToClock < 0)
-                throw new ArgumentOutOfRangeException("time");
+                throw new ArgumentOutOfRangeException(nameof(time));
 
             if (dueToClock == 0)
                 return;
@@ -265,7 +265,7 @@ namespace System.Reactive.Concurrency
 
             var dueToClock = Comparer.Compare(dt, Clock);
             if (dueToClock < 0)
-                throw new ArgumentOutOfRangeException("time");
+                throw new ArgumentOutOfRangeException(nameof(time));
 
             Clock = dt;
         }
@@ -402,7 +402,7 @@ namespace System.Reactive.Concurrency
         public override IDisposable ScheduleAbsolute<TState>(TState state, TAbsolute dueTime, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var si = default(ScheduledItem<TAbsolute, TState>);
 

+ 5 - 5
Rx.NET/Source/System.Reactive.Linq/Reactive/EventPatternSourceBase.cs

@@ -31,9 +31,9 @@ namespace System.Reactive
         protected EventPatternSourceBase(IObservable<EventPattern<TSender, TEventArgs>> source, Action<Action<TSender, TEventArgs>, /*object,*/ EventPattern<TSender, TEventArgs>> invokeHandler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (invokeHandler == null)
-                throw new ArgumentNullException("invokeHandler");
+                throw new ArgumentNullException(nameof(invokeHandler));
 
             _source = source;
             _invokeHandler = invokeHandler;
@@ -49,9 +49,9 @@ namespace System.Reactive
         protected void Add(Delegate handler, Action<TSender, TEventArgs> invoke)
         {
             if (handler == null)
-                throw new ArgumentNullException("handler");
+                throw new ArgumentNullException(nameof(handler));
             if (invoke == null)
-                throw new ArgumentNullException("invoke");
+                throw new ArgumentNullException(nameof(invoke));
 
             var gate = new object();
             var isAdded = false;
@@ -107,7 +107,7 @@ namespace System.Reactive
         protected void Remove(Delegate handler)
         {
             if (handler == null)
-                throw new ArgumentNullException("handler");
+                throw new ArgumentNullException(nameof(handler));
 
             var d = default(IDisposable);
 

+ 30 - 30
Rx.NET/Source/System.Reactive.Linq/Reactive/Joins/Pattern.cs

@@ -41,7 +41,7 @@ namespace System.Reactive.Joins
         public Plan<TResult> Then<TResult>(Func<TSource1, TResult> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return new Plan<TSource1, TResult>(this, selector);
         }
@@ -74,7 +74,7 @@ namespace System.Reactive.Joins
         public Pattern<TSource1, TSource2, TSource3> And<TSource3>(IObservable<TSource3> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             return new Pattern<TSource1, TSource2, TSource3>(First, Second, other);
         }
@@ -89,7 +89,7 @@ namespace System.Reactive.Joins
         public Plan<TResult> Then<TResult>(Func<TSource1, TSource2, TResult> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return new Plan<TSource1, TSource2, TResult>(this, selector);
         }
@@ -125,7 +125,7 @@ namespace System.Reactive.Joins
         public Pattern<TSource1, TSource2, TSource3, TSource4> And<TSource4>(IObservable<TSource4> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             return new Pattern<TSource1, TSource2, TSource3, TSource4>(First, Second, Third, other);
         }
@@ -140,7 +140,7 @@ namespace System.Reactive.Joins
         public Plan<TResult> Then<TResult>(Func<TSource1, TSource2, TSource3, TResult> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return new Plan<TSource1, TSource2, TSource3, TResult>(this, selector);
         }
@@ -180,7 +180,7 @@ namespace System.Reactive.Joins
         public Pattern<TSource1, TSource2, TSource3, TSource4, TSource5> And<TSource5>(IObservable<TSource5> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             return new Pattern<TSource1, TSource2, TSource3, TSource4, TSource5>(First, Second, Third, Fourth, other);
         }
@@ -196,7 +196,7 @@ namespace System.Reactive.Joins
         public Plan<TResult> Then<TResult>(Func<TSource1, TSource2, TSource3, TSource4, TResult> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return new Plan<TSource1, TSource2, TSource3, TSource4, TResult>(this, selector);
         }
@@ -239,7 +239,7 @@ namespace System.Reactive.Joins
         public Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6> And<TSource6>(IObservable<TSource6> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             return new Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6>(First, Second, Third, Fourth, Fifth, other);
         }
@@ -254,7 +254,7 @@ namespace System.Reactive.Joins
         public Plan<TResult> Then<TResult>(Func<TSource1, TSource2, TSource3, TSource4, TSource5, TResult> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return new Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TResult>(this, selector);
         }
@@ -299,7 +299,7 @@ namespace System.Reactive.Joins
         public Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7> And<TSource7>(IObservable<TSource7> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             return new Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7>(First, Second, Third, Fourth, Fifth, Sixth, other);
         }
@@ -314,7 +314,7 @@ namespace System.Reactive.Joins
         public Plan<TResult> Then<TResult>(Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TResult> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return new Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TResult>(this, selector);
         }
@@ -362,7 +362,7 @@ namespace System.Reactive.Joins
         public Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8> And<TSource8>(IObservable<TSource8> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             return new Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8>(First, Second, Third, Fourth, Fifth, Sixth, Seventh, other);
         }
@@ -377,7 +377,7 @@ namespace System.Reactive.Joins
         public Plan<TResult> Then<TResult>(Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TResult> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return new Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TResult>(this, selector);
         }
@@ -428,7 +428,7 @@ namespace System.Reactive.Joins
         public Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9> And<TSource9>(IObservable<TSource9> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             return new Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9>(First, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, other);
         }
@@ -443,7 +443,7 @@ namespace System.Reactive.Joins
         public Plan<TResult> Then<TResult>(Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TResult> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return new Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TResult>(this, selector);
         }
@@ -497,7 +497,7 @@ namespace System.Reactive.Joins
         public Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10> And<TSource10>(IObservable<TSource10> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             return new Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10>(First, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Ninth, other);
         }
@@ -512,7 +512,7 @@ namespace System.Reactive.Joins
         public Plan<TResult> Then<TResult>(Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TResult> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return new Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TResult>(this, selector);
         }
@@ -569,7 +569,7 @@ namespace System.Reactive.Joins
         public Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11> And<TSource11>(IObservable<TSource11> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             return new Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11>(First, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Ninth, Tenth, other);
         }
@@ -584,7 +584,7 @@ namespace System.Reactive.Joins
         public Plan<TResult> Then<TResult>(Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TResult> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return new Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TResult>(this, selector);
         }
@@ -644,7 +644,7 @@ namespace System.Reactive.Joins
         public Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12> And<TSource12>(IObservable<TSource12> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             return new Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12>(First, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Ninth, Tenth, Eleventh, other);
         }
@@ -659,7 +659,7 @@ namespace System.Reactive.Joins
         public Plan<TResult> Then<TResult>(Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TResult> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return new Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TResult>(this, selector);
         }
@@ -722,7 +722,7 @@ namespace System.Reactive.Joins
         public Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13> And<TSource13>(IObservable<TSource13> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             return new Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13>(First, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Ninth, Tenth, Eleventh, Twelfth, other);
         }
@@ -737,7 +737,7 @@ namespace System.Reactive.Joins
         public Plan<TResult> Then<TResult>(Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TResult> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return new Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TResult>(this, selector);
         }
@@ -803,7 +803,7 @@ namespace System.Reactive.Joins
         public Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14> And<TSource14>(IObservable<TSource14> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             return new Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14>(First, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Ninth, Tenth, Eleventh, Twelfth, Thirteenth, other);
         }
@@ -818,7 +818,7 @@ namespace System.Reactive.Joins
         public Plan<TResult> Then<TResult>(Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TResult> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return new Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TResult>(this, selector);
         }
@@ -887,7 +887,7 @@ namespace System.Reactive.Joins
         public Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15> And<TSource15>(IObservable<TSource15> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             return new Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15>(First, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Ninth, Tenth, Eleventh, Twelfth, Thirteenth, Fourteenth, other);
         }
@@ -902,7 +902,7 @@ namespace System.Reactive.Joins
         public Plan<TResult> Then<TResult>(Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TResult> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return new Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TResult>(this, selector);
         }
@@ -974,7 +974,7 @@ namespace System.Reactive.Joins
         public Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TSource16> And<TSource16>(IObservable<TSource16> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             return new Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TSource16>(First, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Ninth, Tenth, Eleventh, Twelfth, Thirteenth, Fourteenth, Fifteenth, other);
         }
@@ -989,7 +989,7 @@ namespace System.Reactive.Joins
         public Plan<TResult> Then<TResult>(Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TResult> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return new Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TResult>(this, selector);
         }
@@ -1064,7 +1064,7 @@ namespace System.Reactive.Joins
         public Plan<TResult> Then<TResult>(Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TSource16, TResult> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return new Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TSource16, TResult>(this, selector);
         }

File diff suppressed because it is too large
+ 149 - 149
Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Aggregates.cs


+ 1 - 1
Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Async.cs

@@ -32,7 +32,7 @@ namespace System.Reactive.Linq
         public static Func<IObservable<TResult>> FromAsyncPattern<TResult>(Func<AsyncCallback, object, IAsyncResult> begin, Func<IAsyncResult, TResult> end)
         {
             if (begin == null)
-                throw new ArgumentNullException("begin");
+                throw new ArgumentNullException(nameof(begin));
             if (end == null)
                 throw new ArgumentNullException("end");
 

+ 4 - 4
Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Awaiter.cs

@@ -22,7 +22,7 @@ namespace System.Reactive.Linq
         public static AsyncSubject<TSource> GetAwaiter<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.GetAwaiter<TSource>(source);
         }
@@ -38,7 +38,7 @@ namespace System.Reactive.Linq
         public static AsyncSubject<TSource> GetAwaiter<TSource>(this IConnectableObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.GetAwaiter<TSource>(source);
         }
@@ -55,7 +55,7 @@ namespace System.Reactive.Linq
         public static AsyncSubject<TSource> RunAsync<TSource>(this IObservable<TSource> source, CancellationToken cancellationToken)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.RunAsync<TSource>(source, cancellationToken);
         }
@@ -72,7 +72,7 @@ namespace System.Reactive.Linq
         public static AsyncSubject<TSource> RunAsync<TSource>(this IConnectableObservable<TSource> source, CancellationToken cancellationToken)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.RunAsync<TSource>(source, cancellationToken);
         }

+ 63 - 63
Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Binding.cs

@@ -25,9 +25,9 @@ namespace System.Reactive.Linq
         public static IConnectableObservable<TResult> Multicast<TSource, TResult>(this IObservable<TSource> source, ISubject<TSource, TResult> subject)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (subject == null)
-                throw new ArgumentNullException("subject");
+                throw new ArgumentNullException(nameof(subject));
 
             return s_impl.Multicast<TSource, TResult>(source, subject);
         }
@@ -48,11 +48,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Multicast<TSource, TIntermediate, TResult>(this IObservable<TSource> source, Func<ISubject<TSource, TIntermediate>> subjectSelector, Func<IObservable<TIntermediate>, IObservable<TResult>> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (subjectSelector == null)
-                throw new ArgumentNullException("subjectSelector");
+                throw new ArgumentNullException(nameof(subjectSelector));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return s_impl.Multicast<TSource, TIntermediate, TResult>(source, subjectSelector, selector);
         }
@@ -74,7 +74,7 @@ namespace System.Reactive.Linq
         public static IConnectableObservable<TSource> Publish<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.Publish<TSource>(source);
         }
@@ -93,9 +93,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Publish<TSource, TResult>(this IObservable<TSource> source, Func<IObservable<TSource>, IObservable<TResult>> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return s_impl.Publish<TSource, TResult>(source, selector);
         }
@@ -114,7 +114,7 @@ namespace System.Reactive.Linq
         public static IConnectableObservable<TSource> Publish<TSource>(this IObservable<TSource> source, TSource initialValue)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.Publish<TSource>(source, initialValue);
         }
@@ -134,9 +134,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Publish<TSource, TResult>(this IObservable<TSource> source, Func<IObservable<TSource>, IObservable<TResult>> selector, TSource initialValue)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return s_impl.Publish<TSource, TResult>(source, selector, initialValue);
         }
@@ -158,7 +158,7 @@ namespace System.Reactive.Linq
         public static IConnectableObservable<TSource> PublishLast<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.PublishLast<TSource>(source);
         }
@@ -177,9 +177,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> PublishLast<TSource, TResult>(this IObservable<TSource> source, Func<IObservable<TSource>, IObservable<TResult>> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return s_impl.PublishLast<TSource, TResult>(source, selector);
         }
@@ -198,7 +198,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> RefCount<TSource>(this IConnectableObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.RefCount<TSource>(source);
         }
@@ -220,7 +220,7 @@ namespace System.Reactive.Linq
         public static IConnectableObservable<TSource> Replay<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.Replay<TSource>(source);
         }
@@ -239,9 +239,9 @@ namespace System.Reactive.Linq
         public static IConnectableObservable<TSource> Replay<TSource>(this IObservable<TSource> source, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Replay<TSource>(source, scheduler);
         }
@@ -260,9 +260,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Replay<TSource, TResult>(this IObservable<TSource> source, Func<IObservable<TSource>, IObservable<TResult>> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return s_impl.Replay<TSource, TResult>(source, selector);
         }
@@ -282,11 +282,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Replay<TSource, TResult>(this IObservable<TSource> source, Func<IObservable<TSource>, IObservable<TResult>> selector, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Replay<TSource, TResult>(source, selector, scheduler);
         }
@@ -306,9 +306,9 @@ namespace System.Reactive.Linq
         public static IConnectableObservable<TSource> Replay<TSource>(this IObservable<TSource> source, TimeSpan window)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (window < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("window");
+                throw new ArgumentOutOfRangeException(nameof(window));
 
             return s_impl.Replay<TSource>(source, window);
         }
@@ -329,11 +329,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Replay<TSource, TResult>(this IObservable<TSource> source, Func<IObservable<TSource>, IObservable<TResult>> selector, TimeSpan window)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
             if (window < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("window");
+                throw new ArgumentOutOfRangeException(nameof(window));
 
             return s_impl.Replay<TSource, TResult>(source, selector, window);
         }
@@ -354,11 +354,11 @@ namespace System.Reactive.Linq
         public static IConnectableObservable<TSource> Replay<TSource>(this IObservable<TSource> source, TimeSpan window, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (window < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("window");
+                throw new ArgumentOutOfRangeException(nameof(window));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Replay<TSource>(source, window, scheduler);
         }
@@ -380,13 +380,13 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Replay<TSource, TResult>(this IObservable<TSource> source, Func<IObservable<TSource>, IObservable<TResult>> selector, TimeSpan window, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
             if (window < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("window");
+                throw new ArgumentOutOfRangeException(nameof(window));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Replay<TSource, TResult>(source, selector, window, scheduler);
         }
@@ -407,11 +407,11 @@ namespace System.Reactive.Linq
         public static IConnectableObservable<TSource> Replay<TSource>(this IObservable<TSource> source, int bufferSize, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (bufferSize < 0)
-                throw new ArgumentOutOfRangeException("bufferSize");
+                throw new ArgumentOutOfRangeException(nameof(bufferSize));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Replay<TSource>(source, bufferSize, scheduler);
         }
@@ -433,13 +433,13 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Replay<TSource, TResult>(this IObservable<TSource> source, Func<IObservable<TSource>, IObservable<TResult>> selector, int bufferSize, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
             if (bufferSize < 0)
-                throw new ArgumentOutOfRangeException("bufferSize");
+                throw new ArgumentOutOfRangeException(nameof(bufferSize));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Replay<TSource, TResult>(source, selector, bufferSize, scheduler);
         }
@@ -459,9 +459,9 @@ namespace System.Reactive.Linq
         public static IConnectableObservable<TSource> Replay<TSource>(this IObservable<TSource> source, int bufferSize)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (bufferSize < 0)
-                throw new ArgumentOutOfRangeException("bufferSize");
+                throw new ArgumentOutOfRangeException(nameof(bufferSize));
 
             return s_impl.Replay<TSource>(source, bufferSize);
         }
@@ -482,11 +482,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Replay<TSource, TResult>(this IObservable<TSource> source, Func<IObservable<TSource>, IObservable<TResult>> selector, int bufferSize)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
             if (bufferSize < 0)
-                throw new ArgumentOutOfRangeException("bufferSize");
+                throw new ArgumentOutOfRangeException(nameof(bufferSize));
 
             return s_impl.Replay<TSource, TResult>(source, selector, bufferSize);
         }
@@ -508,11 +508,11 @@ namespace System.Reactive.Linq
         public static IConnectableObservable<TSource> Replay<TSource>(this IObservable<TSource> source, int bufferSize, TimeSpan window)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (bufferSize < 0)
-                throw new ArgumentOutOfRangeException("bufferSize");
+                throw new ArgumentOutOfRangeException(nameof(bufferSize));
             if (window < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("window");
+                throw new ArgumentOutOfRangeException(nameof(window));
 
             return s_impl.Replay<TSource>(source, bufferSize, window);
         }
@@ -535,13 +535,13 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Replay<TSource, TResult>(this IObservable<TSource> source, Func<IObservable<TSource>, IObservable<TResult>> selector, int bufferSize, TimeSpan window)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
             if (bufferSize < 0)
-                throw new ArgumentOutOfRangeException("bufferSize");
+                throw new ArgumentOutOfRangeException(nameof(bufferSize));
             if (window < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("window");
+                throw new ArgumentOutOfRangeException(nameof(window));
 
             return s_impl.Replay<TSource, TResult>(source, selector, bufferSize, window);
         }
@@ -564,13 +564,13 @@ namespace System.Reactive.Linq
         public static IConnectableObservable<TSource> Replay<TSource>(this IObservable<TSource> source, int bufferSize, TimeSpan window, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (bufferSize < 0)
-                throw new ArgumentOutOfRangeException("bufferSize");
+                throw new ArgumentOutOfRangeException(nameof(bufferSize));
             if (window < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("window");
+                throw new ArgumentOutOfRangeException(nameof(window));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Replay<TSource>(source, bufferSize, window, scheduler);
         }
@@ -594,15 +594,15 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Replay<TSource, TResult>(this IObservable<TSource> source, Func<IObservable<TSource>, IObservable<TResult>> selector, int bufferSize, TimeSpan window, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
             if (bufferSize < 0)
-                throw new ArgumentOutOfRangeException("bufferSize");
+                throw new ArgumentOutOfRangeException(nameof(bufferSize));
             if (window < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("window");
+                throw new ArgumentOutOfRangeException(nameof(window));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Replay<TSource, TResult>(source, selector, bufferSize, window, scheduler);
         }

+ 35 - 35
Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Blocking.cs

@@ -20,7 +20,7 @@ namespace System.Reactive.Linq
         public static IEnumerable<IList<TSource>> Chunkify<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.Chunkify<TSource>(source);
         }
@@ -42,11 +42,11 @@ namespace System.Reactive.Linq
         public static IEnumerable<TResult> Collect<TSource, TResult>(this IObservable<TSource> source, Func<TResult> newCollector, Func<TResult, TSource, TResult> merge)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (newCollector == null)
-                throw new ArgumentNullException("newCollector");
+                throw new ArgumentNullException(nameof(newCollector));
             if (merge == null)
-                throw new ArgumentNullException("merge");
+                throw new ArgumentNullException(nameof(merge));
 
             return s_impl.Collect<TSource, TResult>(source, newCollector, merge);
         }
@@ -65,13 +65,13 @@ namespace System.Reactive.Linq
         public static IEnumerable<TResult> Collect<TSource, TResult>(this IObservable<TSource> source, Func<TResult> getInitialCollector, Func<TResult, TSource, TResult> merge, Func<TResult, TResult> getNewCollector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (getInitialCollector == null)
-                throw new ArgumentNullException("getInitialCollector");
+                throw new ArgumentNullException(nameof(getInitialCollector));
             if (merge == null)
-                throw new ArgumentNullException("merge");
+                throw new ArgumentNullException(nameof(merge));
             if (getNewCollector == null)
-                throw new ArgumentNullException("getNewCollector");
+                throw new ArgumentNullException(nameof(getNewCollector));
 
             return s_impl.Collect<TSource, TResult>(source, getInitialCollector, merge, getNewCollector);
         }
@@ -95,7 +95,7 @@ namespace System.Reactive.Linq
         public static TSource First<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.First<TSource>(source);
         }
@@ -116,9 +116,9 @@ namespace System.Reactive.Linq
         public static TSource First<TSource>(this IObservable<TSource> source, Func<TSource, bool> predicate)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (predicate == null)
-                throw new ArgumentNullException("predicate");
+                throw new ArgumentNullException(nameof(predicate));
 
             return s_impl.First<TSource>(source, predicate);
         }
@@ -141,7 +141,7 @@ namespace System.Reactive.Linq
         public static TSource FirstOrDefault<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.FirstOrDefault<TSource>(source);
         }
@@ -161,9 +161,9 @@ namespace System.Reactive.Linq
         public static TSource FirstOrDefault<TSource>(this IObservable<TSource> source, Func<TSource, bool> predicate)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (predicate == null)
-                throw new ArgumentNullException("predicate");
+                throw new ArgumentNullException(nameof(predicate));
 
             return s_impl.FirstOrDefault<TSource>(source, predicate);
         }
@@ -186,9 +186,9 @@ namespace System.Reactive.Linq
         public static void ForEach<TSource>(this IObservable<TSource> source, Action<TSource> onNext)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
 
             s_impl.ForEach<TSource>(source, onNext);
         }
@@ -207,9 +207,9 @@ namespace System.Reactive.Linq
         public static void ForEach<TSource>(this IObservable<TSource> source, Action<TSource, int> onNext)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
 
             s_impl.ForEach<TSource>(source, onNext);
         }
@@ -228,7 +228,7 @@ namespace System.Reactive.Linq
         public static IEnumerator<TSource> GetEnumerator<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.GetEnumerator<TSource>(source);
         }
@@ -252,7 +252,7 @@ namespace System.Reactive.Linq
         public static TSource Last<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.Last<TSource>(source);
         }
@@ -273,9 +273,9 @@ namespace System.Reactive.Linq
         public static TSource Last<TSource>(this IObservable<TSource> source, Func<TSource, bool> predicate)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (predicate == null)
-                throw new ArgumentNullException("predicate");
+                throw new ArgumentNullException(nameof(predicate));
 
             return s_impl.Last<TSource>(source, predicate);
         }
@@ -298,7 +298,7 @@ namespace System.Reactive.Linq
         public static TSource LastOrDefault<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.LastOrDefault<TSource>(source);
         }
@@ -318,9 +318,9 @@ namespace System.Reactive.Linq
         public static TSource LastOrDefault<TSource>(this IObservable<TSource> source, Func<TSource, bool> predicate)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (predicate == null)
-                throw new ArgumentNullException("predicate");
+                throw new ArgumentNullException(nameof(predicate));
 
             return s_impl.LastOrDefault<TSource>(source, predicate);
         }
@@ -339,7 +339,7 @@ namespace System.Reactive.Linq
         public static IEnumerable<TSource> Latest<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.Latest<TSource>(source);
         }
@@ -360,7 +360,7 @@ namespace System.Reactive.Linq
         public static IEnumerable<TSource> MostRecent<TSource>(this IObservable<TSource> source, TSource initialValue)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.MostRecent<TSource>(source, initialValue);
         }
@@ -380,7 +380,7 @@ namespace System.Reactive.Linq
         public static IEnumerable<TSource> Next<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.Next<TSource>(source);
         }
@@ -404,7 +404,7 @@ namespace System.Reactive.Linq
         public static TSource Single<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.Single<TSource>(source);
         }
@@ -425,9 +425,9 @@ namespace System.Reactive.Linq
         public static TSource Single<TSource>(this IObservable<TSource> source, Func<TSource, bool> predicate)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (predicate == null)
-                throw new ArgumentNullException("predicate");
+                throw new ArgumentNullException(nameof(predicate));
 
             return s_impl.Single<TSource>(source, predicate);
         }
@@ -451,7 +451,7 @@ namespace System.Reactive.Linq
         public static TSource SingleOrDefault<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.SingleOrDefault<TSource>(source);
         }
@@ -472,9 +472,9 @@ namespace System.Reactive.Linq
         public static TSource SingleOrDefault<TSource>(this IObservable<TSource> source, Func<TSource, bool> predicate)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (predicate == null)
-                throw new ArgumentNullException("predicate");
+                throw new ArgumentNullException(nameof(predicate));
 
             return s_impl.SingleOrDefault<TSource>(source, predicate);
         }
@@ -495,7 +495,7 @@ namespace System.Reactive.Linq
         public static TSource Wait<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.Wait<TSource>(source);
         }

+ 11 - 11
Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Concurrency.cs

@@ -26,9 +26,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> ObserveOn<TSource>(this IObservable<TSource> source, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.ObserveOn<TSource>(source, scheduler);
         }
@@ -49,9 +49,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> ObserveOn<TSource>(this IObservable<TSource> source, SynchronizationContext context)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (context == null)
-                throw new ArgumentNullException("context");
+                throw new ArgumentNullException(nameof(context));
 
             return s_impl.ObserveOn<TSource>(source, context);
         }
@@ -77,9 +77,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> SubscribeOn<TSource>(this IObservable<TSource> source, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.SubscribeOn<TSource>(source, scheduler);
         }
@@ -101,9 +101,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> SubscribeOn<TSource>(this IObservable<TSource> source, SynchronizationContext context)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (context == null)
-                throw new ArgumentNullException("context");
+                throw new ArgumentNullException(nameof(context));
 
             return s_impl.SubscribeOn<TSource>(source, context);
         }
@@ -128,7 +128,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Synchronize<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.Synchronize<TSource>(source);
         }
@@ -145,9 +145,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Synchronize<TSource>(this IObservable<TSource> source, object gate)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (gate == null)
-                throw new ArgumentNullException("gate");
+                throw new ArgumentNullException(nameof(gate));
 
             return s_impl.Synchronize<TSource>(source, gate);
         }

+ 12 - 12
Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Conversions.cs

@@ -22,9 +22,9 @@ namespace System.Reactive.Linq
         public static IDisposable Subscribe<TSource>(this IEnumerable<TSource> source, IObserver<TSource> observer)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             return s_impl.Subscribe<TSource>(source, observer);
         }
@@ -41,11 +41,11 @@ namespace System.Reactive.Linq
         public static IDisposable Subscribe<TSource>(this IEnumerable<TSource> source, IObserver<TSource> observer, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Subscribe<TSource>(source, observer, scheduler);
         }
@@ -64,7 +64,7 @@ namespace System.Reactive.Linq
         public static IEnumerable<TSource> ToEnumerable<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.ToEnumerable<TSource>(source);
         }
@@ -82,7 +82,7 @@ namespace System.Reactive.Linq
         public static IEventSource<Unit> ToEvent(this IObservable<Unit> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.ToEvent(source);
         }
@@ -97,7 +97,7 @@ namespace System.Reactive.Linq
         public static IEventSource<TSource> ToEvent<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.ToEvent<TSource>(source);
         }
@@ -119,7 +119,7 @@ namespace System.Reactive.Linq
 #endif
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.ToEventPattern<TEventArgs>(source);
         }
@@ -138,7 +138,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> ToObservable<TSource>(this IEnumerable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.ToObservable<TSource>(source);
         }
@@ -154,9 +154,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> ToObservable<TSource>(this IEnumerable<TSource> source, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.ToObservable<TSource>(source, scheduler);
         }

+ 38 - 38
Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Creation.cs

@@ -31,7 +31,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Create<TResult>(Func<IObserver<TResult>, IDisposable> subscribe)
         {
             if (subscribe == null)
-                throw new ArgumentNullException("subscribe");
+                throw new ArgumentNullException(nameof(subscribe));
 
             return s_impl.Create<TResult>(subscribe);
         }
@@ -51,7 +51,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Create<TResult>(Func<IObserver<TResult>, Action> subscribe)
         {
             if (subscribe == null)
-                throw new ArgumentNullException("subscribe");
+                throw new ArgumentNullException(nameof(subscribe));
 
             return s_impl.Create<TResult>(subscribe);
         }
@@ -74,7 +74,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Create<TResult>(Func<IObserver<TResult>, CancellationToken, Task> subscribeAsync)
         {
             if (subscribeAsync == null)
-                throw new ArgumentNullException("subscribeAsync");
+                throw new ArgumentNullException(nameof(subscribeAsync));
 
             return s_impl.Create<TResult>(subscribeAsync);
         }
@@ -90,7 +90,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Create<TResult>(Func<IObserver<TResult>, Task> subscribeAsync)
         {
             if (subscribeAsync == null)
-                throw new ArgumentNullException("subscribeAsync");
+                throw new ArgumentNullException(nameof(subscribeAsync));
 
             return s_impl.Create<TResult>(subscribeAsync);
         }
@@ -108,7 +108,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Create<TResult>(Func<IObserver<TResult>, CancellationToken, Task<IDisposable>> subscribeAsync)
         {
             if (subscribeAsync == null)
-                throw new ArgumentNullException("subscribeAsync");
+                throw new ArgumentNullException(nameof(subscribeAsync));
 
             return s_impl.Create<TResult>(subscribeAsync);
         }
@@ -124,7 +124,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Create<TResult>(Func<IObserver<TResult>, Task<IDisposable>> subscribeAsync)
         {
             if (subscribeAsync == null)
-                throw new ArgumentNullException("subscribeAsync");
+                throw new ArgumentNullException(nameof(subscribeAsync));
 
             return s_impl.Create<TResult>(subscribeAsync);
         }
@@ -142,7 +142,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Create<TResult>(Func<IObserver<TResult>, CancellationToken, Task<Action>> subscribeAsync)
         {
             if (subscribeAsync == null)
-                throw new ArgumentNullException("subscribeAsync");
+                throw new ArgumentNullException(nameof(subscribeAsync));
 
             return s_impl.Create<TResult>(subscribeAsync);
         }
@@ -158,7 +158,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Create<TResult>(Func<IObserver<TResult>, Task<Action>> subscribeAsync)
         {
             if (subscribeAsync == null)
-                throw new ArgumentNullException("subscribeAsync");
+                throw new ArgumentNullException(nameof(subscribeAsync));
 
             return s_impl.Create<TResult>(subscribeAsync);
         }
@@ -178,7 +178,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Defer<TResult>(Func<IObservable<TResult>> observableFactory)
         {
             if (observableFactory == null)
-                throw new ArgumentNullException("observableFactory");
+                throw new ArgumentNullException(nameof(observableFactory));
 
             return s_impl.Defer<TResult>(observableFactory);
         }
@@ -199,7 +199,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Defer<TResult>(Func<Task<IObservable<TResult>>> observableFactoryAsync)
         {
             if (observableFactoryAsync == null)
-                throw new ArgumentNullException("observableFactoryAsync");
+                throw new ArgumentNullException(nameof(observableFactoryAsync));
 
             return s_impl.Defer<TResult>(observableFactoryAsync);
         }
@@ -217,7 +217,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> DeferAsync<TResult>(Func<CancellationToken, Task<IObservable<TResult>>> observableFactoryAsync)
         {
             if (observableFactoryAsync == null)
-                throw new ArgumentNullException("observableFactoryAsync");
+                throw new ArgumentNullException(nameof(observableFactoryAsync));
 
             return s_impl.Defer<TResult>(observableFactoryAsync);
         }
@@ -258,7 +258,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Empty<TResult>(IScheduler scheduler)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Empty<TResult>(scheduler);
         }
@@ -274,7 +274,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Empty<TResult>(IScheduler scheduler, TResult witness)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Empty<TResult>(scheduler); // Pure inference - no specialized target method.
         }
@@ -297,11 +297,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Generate<TState, TResult>(TState initialState, Func<TState, bool> condition, Func<TState, TState> iterate, Func<TState, TResult> resultSelector)
         {
             if (condition == null)
-                throw new ArgumentNullException("condition");
+                throw new ArgumentNullException(nameof(condition));
             if (iterate == null)
-                throw new ArgumentNullException("iterate");
+                throw new ArgumentNullException(nameof(iterate));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
 
             return s_impl.Generate<TState, TResult>(initialState, condition, iterate, resultSelector);
         }
@@ -321,13 +321,13 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Generate<TState, TResult>(TState initialState, Func<TState, bool> condition, Func<TState, TState> iterate, Func<TState, TResult> resultSelector, IScheduler scheduler)
         {
             if (condition == null)
-                throw new ArgumentNullException("condition");
+                throw new ArgumentNullException(nameof(condition));
             if (iterate == null)
-                throw new ArgumentNullException("iterate");
+                throw new ArgumentNullException(nameof(iterate));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Generate<TState, TResult>(initialState, condition, iterate, resultSelector, scheduler);
         }
@@ -372,7 +372,7 @@ namespace System.Reactive.Linq
         {
             var max = ((long)start) + count - 1;
             if (count < 0 || max > int.MaxValue)
-                throw new ArgumentOutOfRangeException("count");
+                throw new ArgumentOutOfRangeException(nameof(count));
 
             return s_impl.Range(start, count);
         }
@@ -390,10 +390,10 @@ namespace System.Reactive.Linq
         {
             var max = ((long)start) + count - 1;
             if (count < 0 || max > int.MaxValue)
-                throw new ArgumentOutOfRangeException("count");
+                throw new ArgumentOutOfRangeException(nameof(count));
 
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Range(start, count, scheduler);
         }
@@ -424,7 +424,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Repeat<TResult>(TResult value, IScheduler scheduler)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Repeat<TResult>(value, scheduler);
         }
@@ -440,7 +440,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Repeat<TResult>(TResult value, int repeatCount)
         {
             if (repeatCount < 0)
-                throw new ArgumentOutOfRangeException("repeatCount");
+                throw new ArgumentOutOfRangeException(nameof(repeatCount));
 
             return s_impl.Repeat<TResult>(value, repeatCount);
         }
@@ -458,9 +458,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Repeat<TResult>(TResult value, int repeatCount, IScheduler scheduler)
         {
             if (repeatCount < 0)
-                throw new ArgumentOutOfRangeException("repeatCount");
+                throw new ArgumentOutOfRangeException(nameof(repeatCount));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Repeat<TResult>(value, repeatCount, scheduler);
         }
@@ -491,7 +491,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Return<TResult>(TResult value, IScheduler scheduler)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Return<TResult>(value, scheduler);
         }
@@ -510,7 +510,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Throw<TResult>(Exception exception)
         {
             if (exception == null)
-                throw new ArgumentNullException("exception");
+                throw new ArgumentNullException(nameof(exception));
 
             return s_impl.Throw<TResult>(exception);
         }
@@ -526,7 +526,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Throw<TResult>(Exception exception, TResult witness)
         {
             if (exception == null)
-                throw new ArgumentNullException("exception");
+                throw new ArgumentNullException(nameof(exception));
 
             return s_impl.Throw<TResult>(exception); // Pure inference - no specialized target method.
         }
@@ -542,9 +542,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Throw<TResult>(Exception exception, IScheduler scheduler)
         {
             if (exception == null)
-                throw new ArgumentNullException("exception");
+                throw new ArgumentNullException(nameof(exception));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Throw<TResult>(exception, scheduler);
         }
@@ -561,9 +561,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Throw<TResult>(Exception exception, IScheduler scheduler, TResult witness)
         {
             if (exception == null)
-                throw new ArgumentNullException("exception");
+                throw new ArgumentNullException(nameof(exception));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Throw<TResult>(exception, scheduler); // Pure inference - no specialized target method.
         }
@@ -584,9 +584,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Using<TResult, TResource>(Func<TResource> resourceFactory, Func<TResource, IObservable<TResult>> observableFactory) where TResource : IDisposable
         {
             if (resourceFactory == null)
-                throw new ArgumentNullException("resourceFactory");
+                throw new ArgumentNullException(nameof(resourceFactory));
             if (observableFactory == null)
-                throw new ArgumentNullException("observableFactory");
+                throw new ArgumentNullException(nameof(observableFactory));
 
             return s_impl.Using<TResult, TResource>(resourceFactory, observableFactory);
         }
@@ -612,9 +612,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Using<TResult, TResource>(Func<CancellationToken, Task<TResource>> resourceFactoryAsync, Func<TResource, CancellationToken, Task<IObservable<TResult>>> observableFactoryAsync) where TResource : IDisposable
         {
             if (resourceFactoryAsync == null)
-                throw new ArgumentNullException("resourceFactoryAsync");
+                throw new ArgumentNullException(nameof(resourceFactoryAsync));
             if (observableFactoryAsync == null)
-                throw new ArgumentNullException("observableFactoryAsync");
+                throw new ArgumentNullException(nameof(observableFactoryAsync));
 
             return s_impl.Using<TResult, TResource>(resourceFactoryAsync, observableFactoryAsync);
         }

+ 79 - 79
Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Events.cs

@@ -58,9 +58,9 @@ namespace System.Reactive.Linq
         public static IObservable<EventPattern<object>> FromEventPattern(Action<EventHandler> addHandler, Action<EventHandler> removeHandler)
         {
             if (addHandler == null)
-                throw new ArgumentNullException("addHandler");
+                throw new ArgumentNullException(nameof(addHandler));
             if (removeHandler == null)
-                throw new ArgumentNullException("removeHandler");
+                throw new ArgumentNullException(nameof(removeHandler));
 
             return s_impl.FromEventPattern(addHandler, removeHandler);
         }
@@ -108,11 +108,11 @@ namespace System.Reactive.Linq
         public static IObservable<EventPattern<object>> FromEventPattern(Action<EventHandler> addHandler, Action<EventHandler> removeHandler, IScheduler scheduler)
         {
             if (addHandler == null)
-                throw new ArgumentNullException("addHandler");
+                throw new ArgumentNullException(nameof(addHandler));
             if (removeHandler == null)
-                throw new ArgumentNullException("removeHandler");
+                throw new ArgumentNullException(nameof(removeHandler));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.FromEventPattern(addHandler, removeHandler, scheduler);
         }
@@ -159,9 +159,9 @@ namespace System.Reactive.Linq
 #endif
         {
             if (addHandler == null)
-                throw new ArgumentNullException("addHandler");
+                throw new ArgumentNullException(nameof(addHandler));
             if (removeHandler == null)
-                throw new ArgumentNullException("removeHandler");
+                throw new ArgumentNullException(nameof(removeHandler));
 
             return s_impl.FromEventPattern<TDelegate, TEventArgs>(addHandler, removeHandler);
         }
@@ -200,11 +200,11 @@ namespace System.Reactive.Linq
 #endif
         {
             if (addHandler == null)
-                throw new ArgumentNullException("addHandler");
+                throw new ArgumentNullException(nameof(addHandler));
             if (removeHandler == null)
-                throw new ArgumentNullException("removeHandler");
+                throw new ArgumentNullException(nameof(removeHandler));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.FromEventPattern<TDelegate, TEventArgs>(addHandler, removeHandler, scheduler);
         }
@@ -247,11 +247,11 @@ namespace System.Reactive.Linq
 #endif
         {
             if (conversion == null)
-                throw new ArgumentNullException("conversion");
+                throw new ArgumentNullException(nameof(conversion));
             if (addHandler == null)
-                throw new ArgumentNullException("addHandler");
+                throw new ArgumentNullException(nameof(addHandler));
             if (removeHandler == null)
-                throw new ArgumentNullException("removeHandler");
+                throw new ArgumentNullException(nameof(removeHandler));
 
             return s_impl.FromEventPattern<TDelegate, TEventArgs>(conversion, addHandler, removeHandler);
         }
@@ -291,13 +291,13 @@ namespace System.Reactive.Linq
 #endif
         {
             if (conversion == null)
-                throw new ArgumentNullException("conversion");
+                throw new ArgumentNullException(nameof(conversion));
             if (addHandler == null)
-                throw new ArgumentNullException("addHandler");
+                throw new ArgumentNullException(nameof(addHandler));
             if (removeHandler == null)
-                throw new ArgumentNullException("removeHandler");
+                throw new ArgumentNullException(nameof(removeHandler));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.FromEventPattern<TDelegate, TEventArgs>(conversion, addHandler, removeHandler, scheduler);
         }
@@ -340,9 +340,9 @@ namespace System.Reactive.Linq
 #endif
         {
             if (addHandler == null)
-                throw new ArgumentNullException("addHandler");
+                throw new ArgumentNullException(nameof(addHandler));
             if (removeHandler == null)
-                throw new ArgumentNullException("removeHandler");
+                throw new ArgumentNullException(nameof(removeHandler));
 
             return s_impl.FromEventPattern<TDelegate, TSender, TEventArgs>(addHandler, removeHandler);
         }
@@ -382,11 +382,11 @@ namespace System.Reactive.Linq
 #endif
         {
             if (addHandler == null)
-                throw new ArgumentNullException("addHandler");
+                throw new ArgumentNullException(nameof(addHandler));
             if (removeHandler == null)
-                throw new ArgumentNullException("removeHandler");
+                throw new ArgumentNullException(nameof(removeHandler));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.FromEventPattern<TDelegate, TSender, TEventArgs>(addHandler, removeHandler, scheduler);
         }
@@ -430,9 +430,9 @@ namespace System.Reactive.Linq
 #endif
         {
             if (addHandler == null)
-                throw new ArgumentNullException("addHandler");
+                throw new ArgumentNullException(nameof(addHandler));
             if (removeHandler == null)
-                throw new ArgumentNullException("removeHandler");
+                throw new ArgumentNullException(nameof(removeHandler));
 
             return s_impl.FromEventPattern<TEventArgs>(addHandler, removeHandler);
         }
@@ -469,11 +469,11 @@ namespace System.Reactive.Linq
 #endif
         {
             if (addHandler == null)
-                throw new ArgumentNullException("addHandler");
+                throw new ArgumentNullException(nameof(addHandler));
             if (removeHandler == null)
-                throw new ArgumentNullException("removeHandler");
+                throw new ArgumentNullException(nameof(removeHandler));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.FromEventPattern<TEventArgs>(addHandler, removeHandler, scheduler);
         }
@@ -531,9 +531,9 @@ namespace System.Reactive.Linq
         public static IObservable<EventPattern<object>> FromEventPattern(object target, string eventName)
         {
             if (target == null)
-                throw new ArgumentNullException("target");
+                throw new ArgumentNullException(nameof(target));
             if (eventName == null)
-                throw new ArgumentNullException("eventName");
+                throw new ArgumentNullException(nameof(eventName));
 
             return s_impl.FromEventPattern(target, eventName);
         }
@@ -583,11 +583,11 @@ namespace System.Reactive.Linq
         public static IObservable<EventPattern<object>> FromEventPattern(object target, string eventName, IScheduler scheduler)
         {
             if (target == null)
-                throw new ArgumentNullException("target");
+                throw new ArgumentNullException(nameof(target));
             if (eventName == null)
-                throw new ArgumentNullException("eventName");
+                throw new ArgumentNullException(nameof(eventName));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             
             return s_impl.FromEventPattern(target, eventName, scheduler);
         }
@@ -631,9 +631,9 @@ namespace System.Reactive.Linq
 #endif
         {
             if (target == null)
-                throw new ArgumentNullException("target");
+                throw new ArgumentNullException(nameof(target));
             if (eventName == null)
-                throw new ArgumentNullException("eventName");
+                throw new ArgumentNullException(nameof(eventName));
 
             return s_impl.FromEventPattern<TEventArgs>(target, eventName);
         }
@@ -673,11 +673,11 @@ namespace System.Reactive.Linq
 #endif
         {
             if (target == null)
-                throw new ArgumentNullException("target");
+                throw new ArgumentNullException(nameof(target));
             if (eventName == null)
-                throw new ArgumentNullException("eventName");
+                throw new ArgumentNullException(nameof(eventName));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.FromEventPattern<TEventArgs>(target, eventName, scheduler);
         }
@@ -721,9 +721,9 @@ namespace System.Reactive.Linq
 #endif
         {
             if (target == null)
-                throw new ArgumentNullException("target");
+                throw new ArgumentNullException(nameof(target));
             if (eventName == null)
-                throw new ArgumentNullException("eventName");
+                throw new ArgumentNullException(nameof(eventName));
 
             return s_impl.FromEventPattern<TSender, TEventArgs>(target, eventName);
         }
@@ -764,11 +764,11 @@ namespace System.Reactive.Linq
 #endif
         {
             if (target == null)
-                throw new ArgumentNullException("target");
+                throw new ArgumentNullException(nameof(target));
             if (eventName == null)
-                throw new ArgumentNullException("eventName");
+                throw new ArgumentNullException(nameof(eventName));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.FromEventPattern<TSender, TEventArgs>(target, eventName, scheduler);
         }
@@ -822,9 +822,9 @@ namespace System.Reactive.Linq
         public static IObservable<EventPattern<object>> FromEventPattern(Type type, string eventName)
         {
             if (type == null)
-                throw new ArgumentNullException("type");
+                throw new ArgumentNullException(nameof(type));
             if (eventName == null)
-                throw new ArgumentNullException("eventName");
+                throw new ArgumentNullException(nameof(eventName));
 
             return s_impl.FromEventPattern(type, eventName);
         }
@@ -874,11 +874,11 @@ namespace System.Reactive.Linq
         public static IObservable<EventPattern<object>> FromEventPattern(Type type, string eventName, IScheduler scheduler)
         {
             if (type == null)
-                throw new ArgumentNullException("type");
+                throw new ArgumentNullException(nameof(type));
             if (eventName == null)
-                throw new ArgumentNullException("eventName");
+                throw new ArgumentNullException(nameof(eventName));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.FromEventPattern(type, eventName, scheduler);
         }
@@ -922,9 +922,9 @@ namespace System.Reactive.Linq
 #endif
         {
             if (type == null)
-                throw new ArgumentNullException("type");
+                throw new ArgumentNullException(nameof(type));
             if (eventName == null)
-                throw new ArgumentNullException("eventName");
+                throw new ArgumentNullException(nameof(eventName));
 
             return s_impl.FromEventPattern<TEventArgs>(type, eventName);
         }
@@ -964,11 +964,11 @@ namespace System.Reactive.Linq
 #endif
         {
             if (type == null)
-                throw new ArgumentNullException("type");
+                throw new ArgumentNullException(nameof(type));
             if (eventName == null)
-                throw new ArgumentNullException("eventName");
+                throw new ArgumentNullException(nameof(eventName));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.FromEventPattern<TEventArgs>(type, eventName, scheduler);
         }
@@ -1012,9 +1012,9 @@ namespace System.Reactive.Linq
 #endif
         {
             if (type == null)
-                throw new ArgumentNullException("type");
+                throw new ArgumentNullException(nameof(type));
             if (eventName == null)
-                throw new ArgumentNullException("eventName");
+                throw new ArgumentNullException(nameof(eventName));
 
             return s_impl.FromEventPattern<TSender, TEventArgs>(type, eventName);
         }
@@ -1055,11 +1055,11 @@ namespace System.Reactive.Linq
 #endif
         {
             if (type == null)
-                throw new ArgumentNullException("type");
+                throw new ArgumentNullException(nameof(type));
             if (eventName == null)
-                throw new ArgumentNullException("eventName");
+                throw new ArgumentNullException(nameof(eventName));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.FromEventPattern<TSender, TEventArgs>(type, eventName, scheduler);
         }
@@ -1108,11 +1108,11 @@ namespace System.Reactive.Linq
         public static IObservable<TEventArgs> FromEvent<TDelegate, TEventArgs>(Func<Action<TEventArgs>, TDelegate> conversion, Action<TDelegate> addHandler, Action<TDelegate> removeHandler)
         {
             if (conversion == null)
-                throw new ArgumentNullException("conversion");
+                throw new ArgumentNullException(nameof(conversion));
             if (addHandler == null)
-                throw new ArgumentNullException("addHandler");
+                throw new ArgumentNullException(nameof(addHandler));
             if (removeHandler == null)
-                throw new ArgumentNullException("removeHandler");
+                throw new ArgumentNullException(nameof(removeHandler));
 
             return s_impl.FromEvent<TDelegate, TEventArgs>(conversion, addHandler, removeHandler);
         }
@@ -1148,13 +1148,13 @@ namespace System.Reactive.Linq
         public static IObservable<TEventArgs> FromEvent<TDelegate, TEventArgs>(Func<Action<TEventArgs>, TDelegate> conversion, Action<TDelegate> addHandler, Action<TDelegate> removeHandler, IScheduler scheduler)
         {
             if (conversion == null)
-                throw new ArgumentNullException("conversion");
+                throw new ArgumentNullException(nameof(conversion));
             if (addHandler == null)
-                throw new ArgumentNullException("addHandler");
+                throw new ArgumentNullException(nameof(addHandler));
             if (removeHandler == null)
-                throw new ArgumentNullException("removeHandler");
+                throw new ArgumentNullException(nameof(removeHandler));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.FromEvent<TDelegate, TEventArgs>(conversion, addHandler, removeHandler, scheduler);
         }
@@ -1192,9 +1192,9 @@ namespace System.Reactive.Linq
         public static IObservable<TEventArgs> FromEvent<TDelegate, TEventArgs>(Action<TDelegate> addHandler, Action<TDelegate> removeHandler)
         {
             if (addHandler == null)
-                throw new ArgumentNullException("addHandler");
+                throw new ArgumentNullException(nameof(addHandler));
             if (removeHandler == null)
-                throw new ArgumentNullException("removeHandler");
+                throw new ArgumentNullException(nameof(removeHandler));
 
             return s_impl.FromEvent<TDelegate, TEventArgs>(addHandler, removeHandler);
         }
@@ -1229,11 +1229,11 @@ namespace System.Reactive.Linq
         public static IObservable<TEventArgs> FromEvent<TDelegate, TEventArgs>(Action<TDelegate> addHandler, Action<TDelegate> removeHandler, IScheduler scheduler)
         {
             if (addHandler == null)
-                throw new ArgumentNullException("addHandler");
+                throw new ArgumentNullException(nameof(addHandler));
             if (removeHandler == null)
-                throw new ArgumentNullException("removeHandler");
+                throw new ArgumentNullException(nameof(removeHandler));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.FromEvent<TDelegate, TEventArgs>(addHandler, removeHandler, scheduler);
         }
@@ -1274,9 +1274,9 @@ namespace System.Reactive.Linq
         public static IObservable<TEventArgs> FromEvent<TEventArgs>(Action<Action<TEventArgs>> addHandler, Action<Action<TEventArgs>> removeHandler)
         {
             if (addHandler == null)
-                throw new ArgumentNullException("addHandler");
+                throw new ArgumentNullException(nameof(addHandler));
             if (removeHandler == null)
-                throw new ArgumentNullException("removeHandler");
+                throw new ArgumentNullException(nameof(removeHandler));
 
             return s_impl.FromEvent<TEventArgs>(addHandler, removeHandler);
         }
@@ -1310,11 +1310,11 @@ namespace System.Reactive.Linq
         public static IObservable<TEventArgs> FromEvent<TEventArgs>(Action<Action<TEventArgs>> addHandler, Action<Action<TEventArgs>> removeHandler, IScheduler scheduler)
         {
             if (addHandler == null)
-                throw new ArgumentNullException("addHandler");
+                throw new ArgumentNullException(nameof(addHandler));
             if (removeHandler == null)
-                throw new ArgumentNullException("removeHandler");
+                throw new ArgumentNullException(nameof(removeHandler));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.FromEvent<TEventArgs>(addHandler, removeHandler, scheduler);
         }
@@ -1354,9 +1354,9 @@ namespace System.Reactive.Linq
         public static IObservable<Unit> FromEvent(Action<Action> addHandler, Action<Action> removeHandler)
         {
             if (addHandler == null)
-                throw new ArgumentNullException("addHandler");
+                throw new ArgumentNullException(nameof(addHandler));
             if (removeHandler == null)
-                throw new ArgumentNullException("removeHandler");
+                throw new ArgumentNullException(nameof(removeHandler));
 
             return s_impl.FromEvent(addHandler, removeHandler);
         }
@@ -1389,11 +1389,11 @@ namespace System.Reactive.Linq
         public static IObservable<Unit> FromEvent(Action<Action> addHandler, Action<Action> removeHandler, IScheduler scheduler)
         {
             if (addHandler == null)
-                throw new ArgumentNullException("addHandler");
+                throw new ArgumentNullException(nameof(addHandler));
             if (removeHandler == null)
-                throw new ArgumentNullException("removeHandler");
+                throw new ArgumentNullException(nameof(removeHandler));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.FromEvent(addHandler, removeHandler, scheduler);
         }

+ 30 - 30
Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Imperative.cs

@@ -29,9 +29,9 @@ namespace System.Reactive.Linq
         public static Task ForEachAsync<TSource>(this IObservable<TSource> source, Action<TSource> onNext)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
 
             return s_impl.ForEachAsync<TSource>(source, onNext);
         }
@@ -50,9 +50,9 @@ namespace System.Reactive.Linq
         public static Task ForEachAsync<TSource>(this IObservable<TSource> source, Action<TSource> onNext, CancellationToken cancellationToken)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
 
             return s_impl.ForEachAsync<TSource>(source, onNext, cancellationToken);
         }
@@ -69,9 +69,9 @@ namespace System.Reactive.Linq
         public static Task ForEachAsync<TSource>(this IObservable<TSource> source, Action<TSource, int> onNext)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
 
             return s_impl.ForEachAsync<TSource>(source, onNext);
         }
@@ -90,9 +90,9 @@ namespace System.Reactive.Linq
         public static Task ForEachAsync<TSource>(this IObservable<TSource> source, Action<TSource, int> onNext, CancellationToken cancellationToken)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
 
             return s_impl.ForEachAsync<TSource>(source, onNext, cancellationToken);
         }
@@ -115,11 +115,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Case<TValue, TResult>(Func<TValue> selector, IDictionary<TValue, IObservable<TResult>> sources, IObservable<TResult> defaultSource)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
             if (sources == null)
-                throw new ArgumentNullException("sources");
+                throw new ArgumentNullException(nameof(sources));
             if (defaultSource == null)
-                throw new ArgumentNullException("defaultSource");
+                throw new ArgumentNullException(nameof(defaultSource));
 
             return s_impl.Case<TValue, TResult>(selector, sources, defaultSource);
         }
@@ -137,11 +137,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Case<TValue, TResult>(Func<TValue> selector, IDictionary<TValue, IObservable<TResult>> sources, IScheduler scheduler)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
             if (sources == null)
-                throw new ArgumentNullException("sources");
+                throw new ArgumentNullException(nameof(sources));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Case<TValue, TResult>(selector, sources, scheduler);
         }
@@ -158,9 +158,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Case<TValue, TResult>(Func<TValue> selector, IDictionary<TValue, IObservable<TResult>> sources)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
             if (sources == null)
-                throw new ArgumentNullException("sources");
+                throw new ArgumentNullException(nameof(sources));
 
             return s_impl.Case<TValue, TResult>(selector, sources);
         }
@@ -180,9 +180,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> DoWhile<TSource>(this IObservable<TSource> source, Func<bool> condition)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (condition == null)
-                throw new ArgumentNullException("condition");
+                throw new ArgumentNullException(nameof(condition));
 
             return s_impl.DoWhile<TSource>(source, condition);
         }
@@ -203,9 +203,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> For<TSource, TResult>(IEnumerable<TSource> source, Func<TSource, IObservable<TResult>> resultSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
 
             return s_impl.For<TSource, TResult>(source, resultSelector);
         }
@@ -226,11 +226,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> If<TResult>(Func<bool> condition, IObservable<TResult> thenSource, IObservable<TResult> elseSource)
         {
             if (condition == null)
-                throw new ArgumentNullException("condition");
+                throw new ArgumentNullException(nameof(condition));
             if (thenSource == null)
-                throw new ArgumentNullException("thenSource");
+                throw new ArgumentNullException(nameof(thenSource));
             if (elseSource == null)
-                throw new ArgumentNullException("elseSource");
+                throw new ArgumentNullException(nameof(elseSource));
 
             return s_impl.If<TResult>(condition, thenSource, elseSource);
         }
@@ -246,9 +246,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> If<TResult>(Func<bool> condition, IObservable<TResult> thenSource)
         {
             if (condition == null)
-                throw new ArgumentNullException("condition");
+                throw new ArgumentNullException(nameof(condition));
             if (thenSource == null)
-                throw new ArgumentNullException("thenSource");
+                throw new ArgumentNullException(nameof(thenSource));
 
             return s_impl.If<TResult>(condition, thenSource);
         }
@@ -265,11 +265,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> If<TResult>(Func<bool> condition, IObservable<TResult> thenSource, IScheduler scheduler)
         {
             if (condition == null)
-                throw new ArgumentNullException("condition");
+                throw new ArgumentNullException(nameof(condition));
             if (thenSource == null)
-                throw new ArgumentNullException("thenSource");
+                throw new ArgumentNullException(nameof(thenSource));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.If<TResult>(condition, thenSource, scheduler);
         }
@@ -289,9 +289,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> While<TSource>(Func<bool> condition, IObservable<TSource> source)
         {
             if (condition == null)
-                throw new ArgumentNullException("condition");
+                throw new ArgumentNullException(nameof(condition));
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.While<TSource>(condition, source);
         }

+ 6 - 6
Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Joins.cs

@@ -24,9 +24,9 @@ namespace System.Reactive.Linq
         public static Pattern<TLeft, TRight> And<TLeft, TRight>(this IObservable<TLeft> left, IObservable<TRight> right)
         {
             if (left == null)
-                throw new ArgumentNullException("left");
+                throw new ArgumentNullException(nameof(left));
             if (right == null)
-                throw new ArgumentNullException("right");
+                throw new ArgumentNullException(nameof(right));
 
             return s_impl.And<TLeft, TRight>(left, right);
         }
@@ -47,9 +47,9 @@ namespace System.Reactive.Linq
         public static Plan<TResult> Then<TSource, TResult>(this IObservable<TSource> source, Func<TSource, TResult> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return s_impl.Then<TSource, TResult>(source, selector);
         }
@@ -68,7 +68,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> When<TResult>(params Plan<TResult>[] plans)
         {
             if (plans == null)
-                throw new ArgumentNullException("plans");
+                throw new ArgumentNullException(nameof(plans));
 
             return s_impl.When<TResult>(plans);
         }
@@ -83,7 +83,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> When<TResult>(this IEnumerable<Plan<TResult>> plans)
         {
             if (plans == null)
-                throw new ArgumentNullException("plans");
+                throw new ArgumentNullException(nameof(plans));
 
             return s_impl.When<TResult>(plans);
         }

File diff suppressed because it is too large
+ 224 - 224
Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Multiple.cs


+ 67 - 67
Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Single.cs

@@ -21,7 +21,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> AsObservable<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.AsObservable<TSource>(source);
         }
@@ -42,9 +42,9 @@ namespace System.Reactive.Linq
         public static IObservable<IList<TSource>> Buffer<TSource>(this IObservable<TSource> source, int count)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (count <= 0)
-                throw new ArgumentOutOfRangeException("count");
+                throw new ArgumentOutOfRangeException(nameof(count));
 
             return s_impl.Buffer<TSource>(source, count);
         }
@@ -62,11 +62,11 @@ namespace System.Reactive.Linq
         public static IObservable<IList<TSource>> Buffer<TSource>(this IObservable<TSource> source, int count, int skip)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (count <= 0)
-                throw new ArgumentOutOfRangeException("count");
+                throw new ArgumentOutOfRangeException(nameof(count));
             if (skip <= 0)
-                throw new ArgumentOutOfRangeException("skip");
+                throw new ArgumentOutOfRangeException(nameof(skip));
 
             return s_impl.Buffer<TSource>(source, count, skip);
         }
@@ -85,7 +85,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Dematerialize<TSource>(this IObservable<Notification<TSource>> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.Dematerialize<TSource>(source);
         }
@@ -104,7 +104,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> DistinctUntilChanged<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.DistinctUntilChanged<TSource>(source);
         }
@@ -120,9 +120,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> DistinctUntilChanged<TSource>(this IObservable<TSource> source, IEqualityComparer<TSource> comparer)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (comparer == null)
-                throw new ArgumentNullException("comparer");
+                throw new ArgumentNullException(nameof(comparer));
 
             return s_impl.DistinctUntilChanged<TSource>(source, comparer);
         }
@@ -139,9 +139,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> DistinctUntilChanged<TSource, TKey>(this IObservable<TSource> source, Func<TSource, TKey> keySelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (keySelector == null)
-                throw new ArgumentNullException("keySelector");
+                throw new ArgumentNullException(nameof(keySelector));
 
             return s_impl.DistinctUntilChanged<TSource, TKey>(source, keySelector);
         }
@@ -159,11 +159,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> DistinctUntilChanged<TSource, TKey>(this IObservable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey> comparer)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (keySelector == null)
-                throw new ArgumentNullException("keySelector");
+                throw new ArgumentNullException(nameof(keySelector));
             if (comparer == null)
-                throw new ArgumentNullException("comparer");
+                throw new ArgumentNullException(nameof(comparer));
 
             return s_impl.DistinctUntilChanged<TSource, TKey>(source, keySelector, comparer);
         }
@@ -184,9 +184,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Do<TSource>(this IObservable<TSource> source, Action<TSource> onNext)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
 
             return s_impl.Do<TSource>(source, onNext);
         }
@@ -204,11 +204,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Do<TSource>(this IObservable<TSource> source, Action<TSource> onNext, Action onCompleted)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
             if (onCompleted == null)
-                throw new ArgumentNullException("onCompleted");
+                throw new ArgumentNullException(nameof(onCompleted));
 
             return s_impl.Do<TSource>(source, onNext, onCompleted);
         }
@@ -226,11 +226,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Do<TSource>(this IObservable<TSource> source, Action<TSource> onNext, Action<Exception> onError)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
             if (onError == null)
-                throw new ArgumentNullException("onError");
+                throw new ArgumentNullException(nameof(onError));
 
             return s_impl.Do<TSource>(source, onNext, onError);
         }
@@ -249,13 +249,13 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Do<TSource>(this IObservable<TSource> source, Action<TSource> onNext, Action<Exception> onError, Action onCompleted)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
             if (onError == null)
-                throw new ArgumentNullException("onError");
+                throw new ArgumentNullException(nameof(onError));
             if (onCompleted == null)
-                throw new ArgumentNullException("onCompleted");
+                throw new ArgumentNullException(nameof(onCompleted));
 
             return s_impl.Do<TSource>(source, onNext, onError, onCompleted);
         }
@@ -272,9 +272,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Do<TSource>(this IObservable<TSource> source, IObserver<TSource> observer)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             return s_impl.Do<TSource>(source, observer);
         }
@@ -294,9 +294,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Finally<TSource>(this IObservable<TSource> source, Action finallyAction)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (finallyAction == null)
-                throw new ArgumentNullException("finallyAction");
+                throw new ArgumentNullException(nameof(finallyAction));
 
             return s_impl.Finally<TSource>(source, finallyAction);
         }
@@ -315,7 +315,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> IgnoreElements<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.IgnoreElements<TSource>(source);
         }
@@ -334,7 +334,7 @@ namespace System.Reactive.Linq
         public static IObservable<Notification<TSource>> Materialize<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.Materialize<TSource>(source);
         }
@@ -353,7 +353,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Repeat<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.Repeat<TSource>(source);
         }
@@ -370,9 +370,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Repeat<TSource>(this IObservable<TSource> source, int repeatCount)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (repeatCount < 0)
-                throw new ArgumentOutOfRangeException("repeatCount");
+                throw new ArgumentOutOfRangeException(nameof(repeatCount));
 
             return s_impl.Repeat<TSource>(source, repeatCount);
         }
@@ -391,7 +391,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Retry<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.Retry<TSource>(source);
         }
@@ -408,9 +408,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Retry<TSource>(this IObservable<TSource> source, int retryCount)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (retryCount < 0)
-                throw new ArgumentOutOfRangeException("retryCount");
+                throw new ArgumentOutOfRangeException(nameof(retryCount));
 
             return s_impl.Retry<TSource>(source, retryCount);
         }
@@ -433,9 +433,9 @@ namespace System.Reactive.Linq
         public static IObservable<TAccumulate> Scan<TSource, TAccumulate>(this IObservable<TSource> source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> accumulator)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (accumulator == null)
-                throw new ArgumentNullException("accumulator");
+                throw new ArgumentNullException(nameof(accumulator));
 
             return s_impl.Scan<TSource, TAccumulate>(source, seed, accumulator);
         }
@@ -452,9 +452,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Scan<TSource>(this IObservable<TSource> source, Func<TSource, TSource, TSource> accumulator)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (accumulator == null)
-                throw new ArgumentNullException("accumulator");
+                throw new ArgumentNullException(nameof(accumulator));
 
             return s_impl.Scan<TSource>(source, accumulator);
         }
@@ -479,9 +479,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> SkipLast<TSource>(this IObservable<TSource> source, int count)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (count < 0)
-                throw new ArgumentOutOfRangeException("count");
+                throw new ArgumentOutOfRangeException(nameof(count));
 
             return s_impl.SkipLast<TSource>(source, count);
         }
@@ -501,9 +501,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> StartWith<TSource>(this IObservable<TSource> source, params TSource[] values)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (values == null)
-                throw new ArgumentNullException("values");
+                throw new ArgumentNullException(nameof(values));
 
             return s_impl.StartWith<TSource>(source, values);
         }
@@ -519,9 +519,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> StartWith<TSource>(this IObservable<TSource> source, IEnumerable<TSource> values)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (values == null)
-                throw new ArgumentNullException("values");
+                throw new ArgumentNullException(nameof(values));
 
             return s_impl.StartWith<TSource>(source, values);
         }
@@ -538,11 +538,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> StartWith<TSource>(this IObservable<TSource> source, IScheduler scheduler, params TSource[] values)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (values == null)
-                throw new ArgumentNullException("values");
+                throw new ArgumentNullException(nameof(values));
 
             return s_impl.StartWith<TSource>(source, scheduler, values);
         }
@@ -564,11 +564,11 @@ namespace System.Reactive.Linq
             //
 
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (values == null)
-                throw new ArgumentNullException("values");
+                throw new ArgumentNullException(nameof(values));
 
             return s_impl.StartWith<TSource>(source, scheduler, values);
         }
@@ -593,9 +593,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> TakeLast<TSource>(this IObservable<TSource> source, int count)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (count < 0)
-                throw new ArgumentOutOfRangeException("count");
+                throw new ArgumentOutOfRangeException(nameof(count));
 
             return s_impl.TakeLast<TSource>(source, count);
         }
@@ -617,11 +617,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> TakeLast<TSource>(this IObservable<TSource> source, int count, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (count < 0)
-                throw new ArgumentOutOfRangeException("count");
+                throw new ArgumentOutOfRangeException(nameof(count));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.TakeLast<TSource>(source, count, scheduler);
         }
@@ -646,9 +646,9 @@ namespace System.Reactive.Linq
         public static IObservable<IList<TSource>> TakeLastBuffer<TSource>(this IObservable<TSource> source, int count)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (count < 0)
-                throw new ArgumentOutOfRangeException("count");
+                throw new ArgumentOutOfRangeException(nameof(count));
 
             return s_impl.TakeLastBuffer<TSource>(source, count);
         }
@@ -669,9 +669,9 @@ namespace System.Reactive.Linq
         public static IObservable<IObservable<TSource>> Window<TSource>(this IObservable<TSource> source, int count)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (count <= 0)
-                throw new ArgumentOutOfRangeException("count");
+                throw new ArgumentOutOfRangeException(nameof(count));
 
             return s_impl.Window<TSource>(source, count);
         }
@@ -689,11 +689,11 @@ namespace System.Reactive.Linq
         public static IObservable<IObservable<TSource>> Window<TSource>(this IObservable<TSource> source, int count, int skip)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (count <= 0)
-                throw new ArgumentOutOfRangeException("count");
+                throw new ArgumentOutOfRangeException(nameof(count));
             if (skip <= 0)
-                throw new ArgumentOutOfRangeException("skip");
+                throw new ArgumentOutOfRangeException(nameof(skip));
 
             return s_impl.Window<TSource>(source, count, skip);
         }

+ 159 - 159
Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.StandardSequenceOperators.cs

@@ -27,7 +27,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Cast<TResult>(this IObservable<object> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.Cast<TResult>(source);
         }
@@ -46,7 +46,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> DefaultIfEmpty<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.DefaultIfEmpty<TSource>(source);
         }
@@ -62,7 +62,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> DefaultIfEmpty<TSource>(this IObservable<TSource> source, TSource defaultValue)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.DefaultIfEmpty<TSource>(source, defaultValue);
         }
@@ -82,7 +82,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Distinct<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.Distinct<TSource>(source);
         }
@@ -99,9 +99,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Distinct<TSource>(this IObservable<TSource> source, IEqualityComparer<TSource> comparer)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (comparer == null)
-                throw new ArgumentNullException("comparer");
+                throw new ArgumentNullException(nameof(comparer));
 
             return s_impl.Distinct<TSource>(source, comparer);
         }
@@ -119,9 +119,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Distinct<TSource, TKey>(this IObservable<TSource> source, Func<TSource, TKey> keySelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (keySelector == null)
-                throw new ArgumentNullException("keySelector");
+                throw new ArgumentNullException(nameof(keySelector));
 
             return s_impl.Distinct<TSource, TKey>(source, keySelector);
         }
@@ -140,11 +140,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Distinct<TSource, TKey>(this IObservable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey> comparer)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (keySelector == null)
-                throw new ArgumentNullException("keySelector");
+                throw new ArgumentNullException(nameof(keySelector));
             if (comparer == null)
-                throw new ArgumentNullException("comparer");
+                throw new ArgumentNullException(nameof(comparer));
 
             return s_impl.Distinct<TSource, TKey>(source, keySelector, comparer);
         }
@@ -165,9 +165,9 @@ namespace System.Reactive.Linq
         public static IObservable<IGroupedObservable<TKey, TSource>> GroupBy<TSource, TKey>(this IObservable<TSource> source, Func<TSource, TKey> keySelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (keySelector == null)
-                throw new ArgumentNullException("keySelector");
+                throw new ArgumentNullException(nameof(keySelector));
 
             return s_impl.GroupBy<TSource, TKey>(source, keySelector);
         }
@@ -185,11 +185,11 @@ namespace System.Reactive.Linq
         public static IObservable<IGroupedObservable<TKey, TSource>> GroupBy<TSource, TKey>(this IObservable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey> comparer)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (keySelector == null)
-                throw new ArgumentNullException("keySelector");
+                throw new ArgumentNullException(nameof(keySelector));
             if (comparer == null)
-                throw new ArgumentNullException("comparer");
+                throw new ArgumentNullException(nameof(comparer));
 
             return s_impl.GroupBy<TSource, TKey>(source, keySelector, comparer);
         }
@@ -208,11 +208,11 @@ namespace System.Reactive.Linq
         public static IObservable<IGroupedObservable<TKey, TElement>> GroupBy<TSource, TKey, TElement>(this IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (keySelector == null)
-                throw new ArgumentNullException("keySelector");
+                throw new ArgumentNullException(nameof(keySelector));
             if (elementSelector == null)
-                throw new ArgumentNullException("elementSelector");
+                throw new ArgumentNullException(nameof(elementSelector));
 
             return s_impl.GroupBy<TSource, TKey, TElement>(source, keySelector, elementSelector);
         }
@@ -232,13 +232,13 @@ namespace System.Reactive.Linq
         public static IObservable<IGroupedObservable<TKey, TElement>> GroupBy<TSource, TKey, TElement>(this IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, IEqualityComparer<TKey> comparer)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (keySelector == null)
-                throw new ArgumentNullException("keySelector");
+                throw new ArgumentNullException(nameof(keySelector));
             if (elementSelector == null)
-                throw new ArgumentNullException("elementSelector");
+                throw new ArgumentNullException(nameof(elementSelector));
             if (comparer == null)
-                throw new ArgumentNullException("comparer");
+                throw new ArgumentNullException(nameof(comparer));
 
             return s_impl.GroupBy<TSource, TKey, TElement>(source, keySelector, elementSelector, comparer);
         }
@@ -257,11 +257,11 @@ namespace System.Reactive.Linq
         public static IObservable<IGroupedObservable<TKey, TSource>> GroupBy<TSource, TKey>(this IObservable<TSource> source, Func<TSource, TKey> keySelector, int capacity)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (keySelector == null)
-                throw new ArgumentNullException("keySelector");
+                throw new ArgumentNullException(nameof(keySelector));
             if (capacity < 0)
-                throw new ArgumentOutOfRangeException("capacity");
+                throw new ArgumentOutOfRangeException(nameof(capacity));
 
             return s_impl.GroupBy<TSource, TKey>(source, keySelector, capacity);
         }
@@ -281,13 +281,13 @@ namespace System.Reactive.Linq
         public static IObservable<IGroupedObservable<TKey, TSource>> GroupBy<TSource, TKey>(this IObservable<TSource> source, Func<TSource, TKey> keySelector, int capacity, IEqualityComparer<TKey> comparer)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (keySelector == null)
-                throw new ArgumentNullException("keySelector");
+                throw new ArgumentNullException(nameof(keySelector));
             if (capacity < 0)
-                throw new ArgumentOutOfRangeException("capacity");
+                throw new ArgumentOutOfRangeException(nameof(capacity));
             if (comparer == null)
-                throw new ArgumentNullException("comparer");
+                throw new ArgumentNullException(nameof(comparer));
 
             return s_impl.GroupBy<TSource, TKey>(source, keySelector, capacity, comparer);
         }
@@ -308,13 +308,13 @@ namespace System.Reactive.Linq
         public static IObservable<IGroupedObservable<TKey, TElement>> GroupBy<TSource, TKey, TElement>(this IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, int capacity)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (keySelector == null)
-                throw new ArgumentNullException("keySelector");
+                throw new ArgumentNullException(nameof(keySelector));
             if (elementSelector == null)
-                throw new ArgumentNullException("elementSelector");
+                throw new ArgumentNullException(nameof(elementSelector));
             if (capacity < 0)
-                throw new ArgumentOutOfRangeException("capacity");
+                throw new ArgumentOutOfRangeException(nameof(capacity));
 
             return s_impl.GroupBy<TSource, TKey, TElement>(source, keySelector, elementSelector, capacity);
         }
@@ -336,15 +336,15 @@ namespace System.Reactive.Linq
         public static IObservable<IGroupedObservable<TKey, TElement>> GroupBy<TSource, TKey, TElement>(this IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, int capacity, IEqualityComparer<TKey> comparer)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (keySelector == null)
-                throw new ArgumentNullException("keySelector");
+                throw new ArgumentNullException(nameof(keySelector));
             if (elementSelector == null)
-                throw new ArgumentNullException("elementSelector");
+                throw new ArgumentNullException(nameof(elementSelector));
             if (capacity < 0)
-                throw new ArgumentOutOfRangeException("capacity");
+                throw new ArgumentOutOfRangeException(nameof(capacity));
             if (comparer == null)
-                throw new ArgumentNullException("comparer");
+                throw new ArgumentNullException(nameof(comparer));
 
             return s_impl.GroupBy<TSource, TKey, TElement>(source, keySelector, elementSelector, capacity, comparer);
         }
@@ -375,15 +375,15 @@ namespace System.Reactive.Linq
         public static IObservable<IGroupedObservable<TKey, TElement>> GroupByUntil<TSource, TKey, TElement, TDuration>(this IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, Func<IGroupedObservable<TKey, TElement>, IObservable<TDuration>> durationSelector, IEqualityComparer<TKey> comparer)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (keySelector == null)
-                throw new ArgumentNullException("keySelector");
+                throw new ArgumentNullException(nameof(keySelector));
             if (elementSelector == null)
-                throw new ArgumentNullException("elementSelector");
+                throw new ArgumentNullException(nameof(elementSelector));
             if (durationSelector == null)
-                throw new ArgumentNullException("durationSelector");
+                throw new ArgumentNullException(nameof(durationSelector));
             if (comparer == null)
-                throw new ArgumentNullException("comparer");
+                throw new ArgumentNullException(nameof(comparer));
 
             return s_impl.GroupByUntil<TSource, TKey, TElement, TDuration>(source, keySelector, elementSelector, durationSelector, comparer);
         }
@@ -409,13 +409,13 @@ namespace System.Reactive.Linq
         public static IObservable<IGroupedObservable<TKey, TElement>> GroupByUntil<TSource, TKey, TElement, TDuration>(this IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, Func<IGroupedObservable<TKey, TElement>, IObservable<TDuration>> durationSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (keySelector == null)
-                throw new ArgumentNullException("keySelector");
+                throw new ArgumentNullException(nameof(keySelector));
             if (elementSelector == null)
-                throw new ArgumentNullException("elementSelector");
+                throw new ArgumentNullException(nameof(elementSelector));
             if (durationSelector == null)
-                throw new ArgumentNullException("durationSelector");
+                throw new ArgumentNullException(nameof(durationSelector));
 
             return s_impl.GroupByUntil<TSource, TKey, TElement, TDuration>(source, keySelector, elementSelector, durationSelector);
         }
@@ -440,13 +440,13 @@ namespace System.Reactive.Linq
         public static IObservable<IGroupedObservable<TKey, TSource>> GroupByUntil<TSource, TKey, TDuration>(this IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<IGroupedObservable<TKey, TSource>, IObservable<TDuration>> durationSelector, IEqualityComparer<TKey> comparer)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (keySelector == null)
-                throw new ArgumentNullException("keySelector");
+                throw new ArgumentNullException(nameof(keySelector));
             if (durationSelector == null)
-                throw new ArgumentNullException("durationSelector");
+                throw new ArgumentNullException(nameof(durationSelector));
             if (comparer == null)
-                throw new ArgumentNullException("comparer");
+                throw new ArgumentNullException(nameof(comparer));
 
             return s_impl.GroupByUntil<TSource, TKey, TDuration>(source, keySelector, durationSelector, comparer);
         }
@@ -470,11 +470,11 @@ namespace System.Reactive.Linq
         public static IObservable<IGroupedObservable<TKey, TSource>> GroupByUntil<TSource, TKey, TDuration>(this IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<IGroupedObservable<TKey, TSource>, IObservable<TDuration>> durationSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (keySelector == null)
-                throw new ArgumentNullException("keySelector");
+                throw new ArgumentNullException(nameof(keySelector));
             if (durationSelector == null)
-                throw new ArgumentNullException("durationSelector");
+                throw new ArgumentNullException(nameof(durationSelector));
 
             return s_impl.GroupByUntil<TSource, TKey, TDuration>(source, keySelector, durationSelector);
         }
@@ -503,17 +503,17 @@ namespace System.Reactive.Linq
         public static IObservable<IGroupedObservable<TKey, TElement>> GroupByUntil<TSource, TKey, TElement, TDuration>(this IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, Func<IGroupedObservable<TKey, TElement>, IObservable<TDuration>> durationSelector, int capacity, IEqualityComparer<TKey> comparer)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (keySelector == null)
-                throw new ArgumentNullException("keySelector");
+                throw new ArgumentNullException(nameof(keySelector));
             if (elementSelector == null)
-                throw new ArgumentNullException("elementSelector");
+                throw new ArgumentNullException(nameof(elementSelector));
             if (durationSelector == null)
-                throw new ArgumentNullException("durationSelector");
+                throw new ArgumentNullException(nameof(durationSelector));
             if (capacity < 0)
-                throw new ArgumentOutOfRangeException("capacity");
+                throw new ArgumentOutOfRangeException(nameof(capacity));
             if (comparer == null)
-                throw new ArgumentNullException("comparer");
+                throw new ArgumentNullException(nameof(comparer));
 
             return s_impl.GroupByUntil<TSource, TKey, TElement, TDuration>(source, keySelector, elementSelector, durationSelector, capacity, comparer);
         }
@@ -541,15 +541,15 @@ namespace System.Reactive.Linq
         public static IObservable<IGroupedObservable<TKey, TElement>> GroupByUntil<TSource, TKey, TElement, TDuration>(this IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, Func<IGroupedObservable<TKey, TElement>, IObservable<TDuration>> durationSelector, int capacity)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (keySelector == null)
-                throw new ArgumentNullException("keySelector");
+                throw new ArgumentNullException(nameof(keySelector));
             if (elementSelector == null)
-                throw new ArgumentNullException("elementSelector");
+                throw new ArgumentNullException(nameof(elementSelector));
             if (durationSelector == null)
-                throw new ArgumentNullException("durationSelector");
+                throw new ArgumentNullException(nameof(durationSelector));
             if (capacity < 0)
-                throw new ArgumentOutOfRangeException("capacity");
+                throw new ArgumentOutOfRangeException(nameof(capacity));
 
             return s_impl.GroupByUntil<TSource, TKey, TElement, TDuration>(source, keySelector, elementSelector, durationSelector, capacity);
         }
@@ -576,15 +576,15 @@ namespace System.Reactive.Linq
         public static IObservable<IGroupedObservable<TKey, TSource>> GroupByUntil<TSource, TKey, TDuration>(this IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<IGroupedObservable<TKey, TSource>, IObservable<TDuration>> durationSelector, int capacity, IEqualityComparer<TKey> comparer)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (keySelector == null)
-                throw new ArgumentNullException("keySelector");
+                throw new ArgumentNullException(nameof(keySelector));
             if (durationSelector == null)
-                throw new ArgumentNullException("durationSelector");
+                throw new ArgumentNullException(nameof(durationSelector));
             if (capacity < 0)
-                throw new ArgumentOutOfRangeException("capacity");
+                throw new ArgumentOutOfRangeException(nameof(capacity));
             if (comparer == null)
-                throw new ArgumentNullException("comparer");
+                throw new ArgumentNullException(nameof(comparer));
 
             return s_impl.GroupByUntil<TSource, TKey, TDuration>(source, keySelector, durationSelector, capacity, comparer);
         }
@@ -610,13 +610,13 @@ namespace System.Reactive.Linq
         public static IObservable<IGroupedObservable<TKey, TSource>> GroupByUntil<TSource, TKey, TDuration>(this IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<IGroupedObservable<TKey, TSource>, IObservable<TDuration>> durationSelector, int capacity)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (keySelector == null)
-                throw new ArgumentNullException("keySelector");
+                throw new ArgumentNullException(nameof(keySelector));
             if (durationSelector == null)
-                throw new ArgumentNullException("durationSelector");
+                throw new ArgumentNullException(nameof(durationSelector));
             if (capacity < 0)
-                throw new ArgumentOutOfRangeException("capacity");
+                throw new ArgumentOutOfRangeException(nameof(capacity));
 
             return s_impl.GroupByUntil<TSource, TKey, TDuration>(source, keySelector, durationSelector, capacity);
         }
@@ -643,15 +643,15 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> GroupJoin<TLeft, TRight, TLeftDuration, TRightDuration, TResult>(this IObservable<TLeft> left, IObservable<TRight> right, Func<TLeft, IObservable<TLeftDuration>> leftDurationSelector, Func<TRight, IObservable<TRightDuration>> rightDurationSelector, Func<TLeft, IObservable<TRight>, TResult> resultSelector)
         {
             if (left == null)
-                throw new ArgumentNullException("left");
+                throw new ArgumentNullException(nameof(left));
             if (right == null)
-                throw new ArgumentNullException("right");
+                throw new ArgumentNullException(nameof(right));
             if (leftDurationSelector == null)
-                throw new ArgumentNullException("leftDurationSelector");
+                throw new ArgumentNullException(nameof(leftDurationSelector));
             if (rightDurationSelector == null)
-                throw new ArgumentNullException("rightDurationSelector");
+                throw new ArgumentNullException(nameof(rightDurationSelector));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
 
             return s_impl.GroupJoin<TLeft, TRight, TLeftDuration, TRightDuration, TResult>(left, right, leftDurationSelector, rightDurationSelector, resultSelector);
         }
@@ -678,15 +678,15 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Join<TLeft, TRight, TLeftDuration, TRightDuration, TResult>(this IObservable<TLeft> left, IObservable<TRight> right, Func<TLeft, IObservable<TLeftDuration>> leftDurationSelector, Func<TRight, IObservable<TRightDuration>> rightDurationSelector, Func<TLeft, TRight, TResult> resultSelector)
         {
             if (left == null)
-                throw new ArgumentNullException("left");
+                throw new ArgumentNullException(nameof(left));
             if (right == null)
-                throw new ArgumentNullException("right");
+                throw new ArgumentNullException(nameof(right));
             if (leftDurationSelector == null)
-                throw new ArgumentNullException("leftDurationSelector");
+                throw new ArgumentNullException(nameof(leftDurationSelector));
             if (rightDurationSelector == null)
-                throw new ArgumentNullException("rightDurationSelector");
+                throw new ArgumentNullException(nameof(rightDurationSelector));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
 
             return s_impl.Join<TLeft, TRight, TLeftDuration, TRightDuration, TResult>(left, right, leftDurationSelector, rightDurationSelector, resultSelector);
         }
@@ -705,7 +705,7 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> OfType<TResult>(this IObservable<object> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.OfType<TResult>(source);
         }
@@ -726,9 +726,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Select<TSource, TResult>(this IObservable<TSource> source, Func<TSource, TResult> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return s_impl.Select<TSource, TResult>(source, selector);
         }
@@ -745,9 +745,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Select<TSource, TResult>(this IObservable<TSource> source, Func<TSource, int, TResult> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return s_impl.Select<TSource, TResult>(source, selector);
         }
@@ -768,9 +768,9 @@ namespace System.Reactive.Linq
         public static IObservable<TOther> SelectMany<TSource, TOther>(this IObservable<TSource> source, IObservable<TOther> other)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             return s_impl.SelectMany<TSource, TOther>(source, other);
         }
@@ -787,9 +787,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TResult>(this IObservable<TSource> source, Func<TSource, IObservable<TResult>> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return s_impl.SelectMany<TSource, TResult>(source, selector);
         }
@@ -806,9 +806,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TResult>(this IObservable<TSource> source, Func<TSource, int, IObservable<TResult>> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return s_impl.SelectMany<TSource, TResult>(source, selector);
         }
@@ -827,9 +827,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TResult>(this IObservable<TSource> source, Func<TSource, Task<TResult>> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return s_impl.SelectMany<TSource, TResult>(source, selector);
         }
@@ -847,9 +847,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TResult>(this IObservable<TSource> source, Func<TSource, int, Task<TResult>> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return s_impl.SelectMany<TSource, TResult>(source, selector);
         }
@@ -867,9 +867,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TResult>(this IObservable<TSource> source, Func<TSource, CancellationToken, Task<TResult>> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return s_impl.SelectMany<TSource, TResult>(source, selector);
         }
@@ -887,9 +887,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TResult>(this IObservable<TSource> source, Func<TSource, int, CancellationToken, Task<TResult>> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return s_impl.SelectMany<TSource, TResult>(source, selector);
         }
@@ -909,11 +909,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TCollection, TResult>(this IObservable<TSource> source, Func<TSource, IObservable<TCollection>> collectionSelector, Func<TSource, TCollection, TResult> resultSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (collectionSelector == null)
-                throw new ArgumentNullException("collectionSelector");
+                throw new ArgumentNullException(nameof(collectionSelector));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
 
             return s_impl.SelectMany<TSource, TCollection, TResult>(source, collectionSelector, resultSelector);
         }
@@ -932,11 +932,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TCollection, TResult>(this IObservable<TSource> source, Func<TSource, int, IObservable<TCollection>> collectionSelector, Func<TSource, int, TCollection, int, TResult> resultSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (collectionSelector == null)
-                throw new ArgumentNullException("collectionSelector");
+                throw new ArgumentNullException(nameof(collectionSelector));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
 
             return s_impl.SelectMany<TSource, TCollection, TResult>(source, collectionSelector, resultSelector);
         }
@@ -957,11 +957,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TTaskResult, TResult>(this IObservable<TSource> source, Func<TSource, Task<TTaskResult>> taskSelector, Func<TSource, TTaskResult, TResult> resultSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (taskSelector == null)
-                throw new ArgumentNullException("taskSelector");
+                throw new ArgumentNullException(nameof(taskSelector));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
 
             return s_impl.SelectMany<TSource, TTaskResult, TResult>(source, taskSelector, resultSelector);
         }
@@ -981,11 +981,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TTaskResult, TResult>(this IObservable<TSource> source, Func<TSource, int, Task<TTaskResult>> taskSelector, Func<TSource, int, TTaskResult, TResult> resultSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (taskSelector == null)
-                throw new ArgumentNullException("taskSelector");
+                throw new ArgumentNullException(nameof(taskSelector));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
 
             return s_impl.SelectMany<TSource, TTaskResult, TResult>(source, taskSelector, resultSelector);
         }
@@ -1005,11 +1005,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TTaskResult, TResult>(this IObservable<TSource> source, Func<TSource, CancellationToken, Task<TTaskResult>> taskSelector, Func<TSource, TTaskResult, TResult> resultSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (taskSelector == null)
-                throw new ArgumentNullException("taskSelector");
+                throw new ArgumentNullException(nameof(taskSelector));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
 
             return s_impl.SelectMany<TSource, TTaskResult, TResult>(source, taskSelector, resultSelector);
         }
@@ -1029,11 +1029,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TTaskResult, TResult>(this IObservable<TSource> source, Func<TSource, int, CancellationToken, Task<TTaskResult>> taskSelector, Func<TSource, int, TTaskResult, TResult> resultSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (taskSelector == null)
-                throw new ArgumentNullException("taskSelector");
+                throw new ArgumentNullException(nameof(taskSelector));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
 
             return s_impl.SelectMany<TSource, TTaskResult, TResult>(source, taskSelector, resultSelector);
         }
@@ -1053,13 +1053,13 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TResult>(this IObservable<TSource> source, Func<TSource, IObservable<TResult>> onNext, Func<Exception, IObservable<TResult>> onError, Func<IObservable<TResult>> onCompleted)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
             if (onError == null)
-                throw new ArgumentNullException("onError");
+                throw new ArgumentNullException(nameof(onError));
             if (onCompleted == null)
-                throw new ArgumentNullException("onCompleted");
+                throw new ArgumentNullException(nameof(onCompleted));
 
             return s_impl.SelectMany<TSource, TResult>(source, onNext, onError, onCompleted);
         }
@@ -1078,13 +1078,13 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TResult>(this IObservable<TSource> source, Func<TSource, int, IObservable<TResult>> onNext, Func<Exception, IObservable<TResult>> onError, Func<IObservable<TResult>> onCompleted)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (onNext == null)
-                throw new ArgumentNullException("onNext");
+                throw new ArgumentNullException(nameof(onNext));
             if (onError == null)
-                throw new ArgumentNullException("onError");
+                throw new ArgumentNullException(nameof(onError));
             if (onCompleted == null)
-                throw new ArgumentNullException("onCompleted");
+                throw new ArgumentNullException(nameof(onCompleted));
 
             return s_impl.SelectMany<TSource, TResult>(source, onNext, onError, onCompleted);
         }
@@ -1102,9 +1102,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TResult>(this IObservable<TSource> source, Func<TSource, IEnumerable<TResult>> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return s_impl.SelectMany<TSource, TResult>(source, selector);
         }
@@ -1122,9 +1122,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TResult>(this IObservable<TSource> source, Func<TSource, int, IEnumerable<TResult>> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return s_impl.SelectMany<TSource, TResult>(source, selector);
         }
@@ -1144,11 +1144,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TCollection, TResult>(this IObservable<TSource> source, Func<TSource, IEnumerable<TCollection>> collectionSelector, Func<TSource, TCollection, TResult> resultSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (collectionSelector == null)
-                throw new ArgumentNullException("collectionSelector");
+                throw new ArgumentNullException(nameof(collectionSelector));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
 
             return s_impl.SelectMany<TSource, TCollection, TResult>(source, collectionSelector, resultSelector);
         }
@@ -1168,11 +1168,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TCollection, TResult>(this IObservable<TSource> source, Func<TSource, int, IEnumerable<TCollection>> collectionSelector, Func<TSource, int, TCollection, int, TResult> resultSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (collectionSelector == null)
-                throw new ArgumentNullException("collectionSelector");
+                throw new ArgumentNullException(nameof(collectionSelector));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
 
             return s_impl.SelectMany<TSource, TCollection, TResult>(source, collectionSelector, resultSelector);
         }
@@ -1193,9 +1193,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Skip<TSource>(this IObservable<TSource> source, int count)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (count < 0)
-                throw new ArgumentOutOfRangeException("count");
+                throw new ArgumentOutOfRangeException(nameof(count));
 
             return s_impl.Skip<TSource>(source, count);
         }
@@ -1215,9 +1215,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> SkipWhile<TSource>(this IObservable<TSource> source, Func<TSource, bool> predicate)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (predicate == null)
-                throw new ArgumentNullException("predicate");
+                throw new ArgumentNullException(nameof(predicate));
 
             return s_impl.SkipWhile<TSource>(source, predicate);
         }
@@ -1234,9 +1234,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> SkipWhile<TSource>(this IObservable<TSource> source, Func<TSource, int, bool> predicate)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (predicate == null)
-                throw new ArgumentNullException("predicate");
+                throw new ArgumentNullException(nameof(predicate));
 
             return s_impl.SkipWhile<TSource>(source, predicate);
         }
@@ -1257,9 +1257,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Take<TSource>(this IObservable<TSource> source, int count)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (count < 0)
-                throw new ArgumentOutOfRangeException("count");
+                throw new ArgumentOutOfRangeException(nameof(count));
 
             return s_impl.Take<TSource>(source, count);
         }
@@ -1277,11 +1277,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Take<TSource>(this IObservable<TSource> source, int count, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (count < 0)
-                throw new ArgumentOutOfRangeException("count");
+                throw new ArgumentOutOfRangeException(nameof(count));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Take<TSource>(source, count, scheduler);
         }
@@ -1301,9 +1301,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> TakeWhile<TSource>(this IObservable<TSource> source, Func<TSource, bool> predicate)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (predicate == null)
-                throw new ArgumentNullException("predicate");
+                throw new ArgumentNullException(nameof(predicate));
 
             return s_impl.TakeWhile<TSource>(source, predicate);
         }
@@ -1320,9 +1320,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> TakeWhile<TSource>(this IObservable<TSource> source, Func<TSource, int, bool> predicate)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (predicate == null)
-                throw new ArgumentNullException("predicate");
+                throw new ArgumentNullException(nameof(predicate));
 
             return s_impl.TakeWhile<TSource>(source, predicate);
         }
@@ -1342,9 +1342,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Where<TSource>(this IObservable<TSource> source, Func<TSource, bool> predicate)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (predicate == null)
-                throw new ArgumentNullException("predicate");
+                throw new ArgumentNullException(nameof(predicate));
 
             return s_impl.Where<TSource>(source, predicate);
         }
@@ -1360,9 +1360,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Where<TSource>(this IObservable<TSource> source, Func<TSource, int, bool> predicate)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (predicate == null)
-                throw new ArgumentNullException("predicate");
+                throw new ArgumentNullException(nameof(predicate));
 
             return s_impl.Where<TSource>(source, predicate);
         }

+ 175 - 175
Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable.Time.cs

@@ -30,9 +30,9 @@ namespace System.Reactive.Linq
         public static IObservable<IList<TSource>> Buffer<TSource>(this IObservable<TSource> source, TimeSpan timeSpan)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (timeSpan < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("timeSpan");
+                throw new ArgumentOutOfRangeException(nameof(timeSpan));
 
             return s_impl.Buffer<TSource>(source, timeSpan);
         }
@@ -55,11 +55,11 @@ namespace System.Reactive.Linq
         public static IObservable<IList<TSource>> Buffer<TSource>(this IObservable<TSource> source, TimeSpan timeSpan, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (timeSpan < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("timeSpan");
+                throw new ArgumentOutOfRangeException(nameof(timeSpan));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Buffer<TSource>(source, timeSpan, scheduler);
         }
@@ -89,11 +89,11 @@ namespace System.Reactive.Linq
         public static IObservable<IList<TSource>> Buffer<TSource>(this IObservable<TSource> source, TimeSpan timeSpan, TimeSpan timeShift)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (timeSpan < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("timeSpan");
+                throw new ArgumentOutOfRangeException(nameof(timeSpan));
             if (timeShift < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("timeShift");
+                throw new ArgumentOutOfRangeException(nameof(timeShift));
 
             return s_impl.Buffer<TSource>(source, timeSpan, timeShift);
         }
@@ -124,13 +124,13 @@ namespace System.Reactive.Linq
         public static IObservable<IList<TSource>> Buffer<TSource>(this IObservable<TSource> source, TimeSpan timeSpan, TimeSpan timeShift, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (timeSpan < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("timeSpan");
+                throw new ArgumentOutOfRangeException(nameof(timeSpan));
             if (timeShift < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("timeShift");
+                throw new ArgumentOutOfRangeException(nameof(timeShift));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Buffer<TSource>(source, timeSpan, timeShift, scheduler);
         }
@@ -158,11 +158,11 @@ namespace System.Reactive.Linq
         public static IObservable<IList<TSource>> Buffer<TSource>(this IObservable<TSource> source, TimeSpan timeSpan, int count)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (timeSpan < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("timeSpan");
+                throw new ArgumentOutOfRangeException(nameof(timeSpan));
             if (count <= 0)
-                throw new ArgumentOutOfRangeException("count");
+                throw new ArgumentOutOfRangeException(nameof(count));
 
             return s_impl.Buffer<TSource>(source, timeSpan, count);
         }
@@ -187,13 +187,13 @@ namespace System.Reactive.Linq
         public static IObservable<IList<TSource>> Buffer<TSource>(this IObservable<TSource> source, TimeSpan timeSpan, int count, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (timeSpan < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("timeSpan");
+                throw new ArgumentOutOfRangeException(nameof(timeSpan));
             if (count <= 0)
-                throw new ArgumentOutOfRangeException("count");
+                throw new ArgumentOutOfRangeException(nameof(count));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Buffer<TSource>(source, timeSpan, count, scheduler);
         }
@@ -231,9 +231,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Delay<TSource>(this IObservable<TSource> source, TimeSpan dueTime)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (dueTime < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("dueTime");
+                throw new ArgumentOutOfRangeException(nameof(dueTime));
 
             return s_impl.Delay<TSource>(source, dueTime);
         }
@@ -267,11 +267,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Delay<TSource>(this IObservable<TSource> source, TimeSpan dueTime, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (dueTime < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("dueTime");
+                throw new ArgumentOutOfRangeException(nameof(dueTime));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Delay<TSource>(source, dueTime, scheduler);
         }
@@ -304,7 +304,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Delay<TSource>(this IObservable<TSource> source, DateTimeOffset dueTime)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.Delay<TSource>(source, dueTime);
         }
@@ -334,9 +334,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Delay<TSource>(this IObservable<TSource> source, DateTimeOffset dueTime, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Delay<TSource>(source, dueTime, scheduler);
         }
@@ -357,9 +357,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Delay<TSource, TDelay>(this IObservable<TSource> source, Func<TSource, IObservable<TDelay>> delayDurationSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (delayDurationSelector == null)
-                throw new ArgumentNullException("delayDurationSelector");
+                throw new ArgumentNullException(nameof(delayDurationSelector));
 
             return s_impl.Delay<TSource, TDelay>(source, delayDurationSelector);
         }
@@ -377,11 +377,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Delay<TSource, TDelay>(this IObservable<TSource> source, IObservable<TDelay> subscriptionDelay, Func<TSource, IObservable<TDelay>> delayDurationSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (subscriptionDelay == null)
-                throw new ArgumentNullException("subscriptionDelay");
+                throw new ArgumentNullException(nameof(subscriptionDelay));
             if (delayDurationSelector == null)
-                throw new ArgumentNullException("delayDurationSelector");
+                throw new ArgumentNullException(nameof(delayDurationSelector));
 
             return s_impl.Delay<TSource, TDelay>(source, subscriptionDelay, delayDurationSelector);
         }
@@ -412,9 +412,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> DelaySubscription<TSource>(this IObservable<TSource> source, TimeSpan dueTime)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (dueTime < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("dueTime");
+                throw new ArgumentOutOfRangeException(nameof(dueTime));
 
             return s_impl.DelaySubscription<TSource>(source, dueTime);
         }
@@ -440,11 +440,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> DelaySubscription<TSource>(this IObservable<TSource> source, TimeSpan dueTime, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (dueTime < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("dueTime");
+                throw new ArgumentOutOfRangeException(nameof(dueTime));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.DelaySubscription<TSource>(source, dueTime, scheduler);
         }
@@ -468,7 +468,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> DelaySubscription<TSource>(this IObservable<TSource> source, DateTimeOffset dueTime)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.DelaySubscription<TSource>(source, dueTime);
         }
@@ -493,9 +493,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> DelaySubscription<TSource>(this IObservable<TSource> source, DateTimeOffset dueTime, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.DelaySubscription<TSource>(source, dueTime, scheduler);
         }
@@ -519,13 +519,13 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Generate<TState, TResult>(TState initialState, Func<TState, bool> condition, Func<TState, TState> iterate, Func<TState, TResult> resultSelector, Func<TState, TimeSpan> timeSelector)
         {
             if (condition == null)
-                throw new ArgumentNullException("condition");
+                throw new ArgumentNullException(nameof(condition));
             if (iterate == null)
-                throw new ArgumentNullException("iterate");
+                throw new ArgumentNullException(nameof(iterate));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
             if (timeSelector == null)
-                throw new ArgumentNullException("timeSelector");
+                throw new ArgumentNullException(nameof(timeSelector));
 
             return s_impl.Generate<TState, TResult>(initialState, condition, iterate, resultSelector, timeSelector);
         }
@@ -546,15 +546,15 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Generate<TState, TResult>(TState initialState, Func<TState, bool> condition, Func<TState, TState> iterate, Func<TState, TResult> resultSelector, Func<TState, TimeSpan> timeSelector, IScheduler scheduler)
         {
             if (condition == null)
-                throw new ArgumentNullException("condition");
+                throw new ArgumentNullException(nameof(condition));
             if (iterate == null)
-                throw new ArgumentNullException("iterate");
+                throw new ArgumentNullException(nameof(iterate));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
             if (timeSelector == null)
-                throw new ArgumentNullException("timeSelector");
+                throw new ArgumentNullException(nameof(timeSelector));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Generate<TState, TResult>(initialState, condition, iterate, resultSelector, timeSelector, scheduler);
         }
@@ -574,13 +574,13 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Generate<TState, TResult>(TState initialState, Func<TState, bool> condition, Func<TState, TState> iterate, Func<TState, TResult> resultSelector, Func<TState, DateTimeOffset> timeSelector)
         {
             if (condition == null)
-                throw new ArgumentNullException("condition");
+                throw new ArgumentNullException(nameof(condition));
             if (iterate == null)
-                throw new ArgumentNullException("iterate");
+                throw new ArgumentNullException(nameof(iterate));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
             if (timeSelector == null)
-                throw new ArgumentNullException("timeSelector");
+                throw new ArgumentNullException(nameof(timeSelector));
 
             return s_impl.Generate<TState, TResult>(initialState, condition, iterate, resultSelector, timeSelector);
         }
@@ -601,15 +601,15 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> Generate<TState, TResult>(TState initialState, Func<TState, bool> condition, Func<TState, TState> iterate, Func<TState, TResult> resultSelector, Func<TState, DateTimeOffset> timeSelector, IScheduler scheduler)
         {
             if (condition == null)
-                throw new ArgumentNullException("condition");
+                throw new ArgumentNullException(nameof(condition));
             if (iterate == null)
-                throw new ArgumentNullException("iterate");
+                throw new ArgumentNullException(nameof(iterate));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
             if (timeSelector == null)
-                throw new ArgumentNullException("timeSelector");
+                throw new ArgumentNullException(nameof(timeSelector));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Generate<TState, TResult>(initialState, condition, iterate, resultSelector, timeSelector, scheduler);
         }
@@ -634,7 +634,7 @@ namespace System.Reactive.Linq
         public static IObservable<long> Interval(TimeSpan period)
         {
             if (period < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("period");
+                throw new ArgumentOutOfRangeException(nameof(period));
 
             return s_impl.Interval(period);
         }
@@ -657,9 +657,9 @@ namespace System.Reactive.Linq
         public static IObservable<long> Interval(TimeSpan period, IScheduler scheduler)
         {
             if (period < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("period");
+                throw new ArgumentOutOfRangeException(nameof(period));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Interval(period, scheduler);
         }
@@ -685,9 +685,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Sample<TSource>(this IObservable<TSource> source, TimeSpan interval)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (interval < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("interval");
+                throw new ArgumentOutOfRangeException(nameof(interval));
 
             return s_impl.Sample<TSource>(source, interval);
         }
@@ -710,11 +710,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Sample<TSource>(this IObservable<TSource> source, TimeSpan interval, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (interval < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("interval");
+                throw new ArgumentOutOfRangeException(nameof(interval));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Sample<TSource>(source, interval, scheduler);
         }
@@ -732,9 +732,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Sample<TSource, TSample>(this IObservable<TSource> source, IObservable<TSample> sampler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (sampler == null)
-                throw new ArgumentNullException("sampler");
+                throw new ArgumentNullException(nameof(sampler));
 
             return s_impl.Sample<TSource, TSample>(source, sampler);
         }
@@ -765,9 +765,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Skip<TSource>(this IObservable<TSource> source, TimeSpan duration)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (duration < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("duration");
+                throw new ArgumentOutOfRangeException(nameof(duration));
 
             return s_impl.Skip<TSource>(source, duration);
         }
@@ -795,11 +795,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Skip<TSource>(this IObservable<TSource> source, TimeSpan duration, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (duration < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("duration");
+                throw new ArgumentOutOfRangeException(nameof(duration));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Skip<TSource>(source, duration, scheduler);
         }
@@ -825,9 +825,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> SkipLast<TSource>(this IObservable<TSource> source, TimeSpan duration)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (duration < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("duration");
+                throw new ArgumentOutOfRangeException(nameof(duration));
 
             return s_impl.SkipLast<TSource>(source, duration);
         }
@@ -850,11 +850,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> SkipLast<TSource>(this IObservable<TSource> source, TimeSpan duration, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (duration < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("duration");
+                throw new ArgumentOutOfRangeException(nameof(duration));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.SkipLast<TSource>(source, duration, scheduler);
         }
@@ -877,7 +877,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> SkipUntil<TSource>(this IObservable<TSource> source, DateTimeOffset startTime)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.SkipUntil<TSource>(source, startTime);
         }
@@ -897,9 +897,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> SkipUntil<TSource>(this IObservable<TSource> source, DateTimeOffset startTime, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.SkipUntil<TSource>(source, startTime, scheduler);
         }
@@ -925,9 +925,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Take<TSource>(this IObservable<TSource> source, TimeSpan duration)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (duration < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("duration");
+                throw new ArgumentOutOfRangeException(nameof(duration));
 
             return s_impl.Take<TSource>(source, duration);
         }
@@ -950,11 +950,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Take<TSource>(this IObservable<TSource> source, TimeSpan duration, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (duration < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("duration");
+                throw new ArgumentOutOfRangeException(nameof(duration));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Take<TSource>(source, duration, scheduler);
         }
@@ -980,9 +980,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> TakeLast<TSource>(this IObservable<TSource> source, TimeSpan duration)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (duration < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("duration");
+                throw new ArgumentOutOfRangeException(nameof(duration));
 
             return s_impl.TakeLast<TSource>(source, duration);
         }
@@ -1005,11 +1005,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> TakeLast<TSource>(this IObservable<TSource> source, TimeSpan duration, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (duration < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("duration");
+                throw new ArgumentOutOfRangeException(nameof(duration));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.TakeLast<TSource>(source, duration, scheduler);
         }
@@ -1033,13 +1033,13 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> TakeLast<TSource>(this IObservable<TSource> source, TimeSpan duration, IScheduler timerScheduler, IScheduler loopScheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (duration < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("duration");
+                throw new ArgumentOutOfRangeException(nameof(duration));
             if (timerScheduler == null)
-                throw new ArgumentNullException("timerScheduler");
+                throw new ArgumentNullException(nameof(timerScheduler));
             if (loopScheduler == null)
-                throw new ArgumentNullException("loopScheduler");
+                throw new ArgumentNullException(nameof(loopScheduler));
 
             return s_impl.TakeLast<TSource>(source, duration, timerScheduler, loopScheduler);
         }
@@ -1064,9 +1064,9 @@ namespace System.Reactive.Linq
         public static IObservable<IList<TSource>> TakeLastBuffer<TSource>(this IObservable<TSource> source, TimeSpan duration)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (duration < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("duration");
+                throw new ArgumentOutOfRangeException(nameof(duration));
 
             return s_impl.TakeLastBuffer<TSource>(source, duration);
         }
@@ -1088,11 +1088,11 @@ namespace System.Reactive.Linq
         public static IObservable<IList<TSource>> TakeLastBuffer<TSource>(this IObservable<TSource> source, TimeSpan duration, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (duration < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("duration");
+                throw new ArgumentOutOfRangeException(nameof(duration));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.TakeLastBuffer<TSource>(source, duration, scheduler);
         }
@@ -1112,7 +1112,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> TakeUntil<TSource>(this IObservable<TSource> source, DateTimeOffset endTime)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.TakeUntil<TSource>(source, endTime);
         }
@@ -1129,9 +1129,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> TakeUntil<TSource>(this IObservable<TSource> source, DateTimeOffset endTime, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.TakeUntil<TSource>(source, endTime, scheduler);
         }
@@ -1167,9 +1167,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Throttle<TSource>(this IObservable<TSource> source, TimeSpan dueTime)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (dueTime < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("dueTime");
+                throw new ArgumentOutOfRangeException(nameof(dueTime));
 
             return s_impl.Throttle<TSource>(source, dueTime);
         }
@@ -1202,11 +1202,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Throttle<TSource>(this IObservable<TSource> source, TimeSpan dueTime, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (dueTime < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("dueTime");
+                throw new ArgumentOutOfRangeException(nameof(dueTime));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Throttle<TSource>(source, dueTime, scheduler);
         }
@@ -1230,9 +1230,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Throttle<TSource, TThrottle>(this IObservable<TSource> source, Func<TSource, IObservable<TThrottle>> throttleDurationSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (throttleDurationSelector == null)
-                throw new ArgumentNullException("throttleDurationSelector");
+                throw new ArgumentNullException(nameof(throttleDurationSelector));
 
             return s_impl.Throttle<TSource, TThrottle>(source, throttleDurationSelector);
         }
@@ -1251,7 +1251,7 @@ namespace System.Reactive.Linq
         public static IObservable<System.Reactive.TimeInterval<TSource>> TimeInterval<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.TimeInterval<TSource>(source);
         }
@@ -1267,9 +1267,9 @@ namespace System.Reactive.Linq
         public static IObservable<System.Reactive.TimeInterval<TSource>> TimeInterval<TSource>(this IObservable<TSource> source, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.TimeInterval<TSource>(source, scheduler);
         }
@@ -1307,9 +1307,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Timeout<TSource>(this IObservable<TSource> source, TimeSpan dueTime)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (dueTime < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("dueTime");
+                throw new ArgumentOutOfRangeException(nameof(dueTime));
 
             return s_impl.Timeout<TSource>(source, dueTime);
         }
@@ -1342,11 +1342,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Timeout<TSource>(this IObservable<TSource> source, TimeSpan dueTime, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (dueTime < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("dueTime");
+                throw new ArgumentOutOfRangeException(nameof(dueTime));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Timeout<TSource>(source, dueTime, scheduler);
         }
@@ -1378,11 +1378,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Timeout<TSource>(this IObservable<TSource> source, TimeSpan dueTime, IObservable<TSource> other)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (dueTime < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("dueTime");
+                throw new ArgumentOutOfRangeException(nameof(dueTime));
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             return s_impl.Timeout<TSource>(source, dueTime, other);
         }
@@ -1415,13 +1415,13 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Timeout<TSource>(this IObservable<TSource> source, TimeSpan dueTime, IObservable<TSource> other, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (dueTime < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("dueTime");
+                throw new ArgumentOutOfRangeException(nameof(dueTime));
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Timeout<TSource>(source, dueTime, other, scheduler);
         }
@@ -1448,7 +1448,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Timeout<TSource>(this IObservable<TSource> source, DateTimeOffset dueTime)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.Timeout<TSource>(source, dueTime);
         }
@@ -1472,9 +1472,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Timeout<TSource>(this IObservable<TSource> source, DateTimeOffset dueTime, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Timeout<TSource>(source, dueTime, scheduler);
         }
@@ -1497,9 +1497,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Timeout<TSource>(this IObservable<TSource> source, DateTimeOffset dueTime, IObservable<TSource> other)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             return s_impl.Timeout<TSource>(source, dueTime, other);
         }
@@ -1523,11 +1523,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Timeout<TSource>(this IObservable<TSource> source, DateTimeOffset dueTime, IObservable<TSource> other, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             return s_impl.Timeout<TSource>(source, dueTime, other, scheduler);
         }
@@ -1549,9 +1549,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Timeout<TSource, TTimeout>(this IObservable<TSource> source, Func<TSource, IObservable<TTimeout>> timeoutDurationSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (timeoutDurationSelector == null)
-                throw new ArgumentNullException("timeoutDurationSelector");
+                throw new ArgumentNullException(nameof(timeoutDurationSelector));
 
             return s_impl.Timeout<TSource, TTimeout>(source, timeoutDurationSelector);
         }
@@ -1570,11 +1570,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Timeout<TSource, TTimeout>(this IObservable<TSource> source, Func<TSource, IObservable<TTimeout>> timeoutDurationSelector, IObservable<TSource> other)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (timeoutDurationSelector == null)
-                throw new ArgumentNullException("timeoutDurationSelector");
+                throw new ArgumentNullException(nameof(timeoutDurationSelector));
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             return s_impl.Timeout<TSource, TTimeout>(source, timeoutDurationSelector, other);
         }
@@ -1593,11 +1593,11 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Timeout<TSource, TTimeout>(this IObservable<TSource> source, IObservable<TTimeout> firstTimeout, Func<TSource, IObservable<TTimeout>> timeoutDurationSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (firstTimeout == null)
-                throw new ArgumentNullException("firstTimeout");
+                throw new ArgumentNullException(nameof(firstTimeout));
             if (timeoutDurationSelector == null)
-                throw new ArgumentNullException("timeoutDurationSelector");
+                throw new ArgumentNullException(nameof(timeoutDurationSelector));
 
             return s_impl.Timeout<TSource, TTimeout>(source, firstTimeout, timeoutDurationSelector);
         }
@@ -1617,13 +1617,13 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Timeout<TSource, TTimeout>(this IObservable<TSource> source, IObservable<TTimeout> firstTimeout, Func<TSource, IObservable<TTimeout>> timeoutDurationSelector, IObservable<TSource> other)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (firstTimeout == null)
-                throw new ArgumentNullException("firstTimeout");
+                throw new ArgumentNullException(nameof(firstTimeout));
             if (timeoutDurationSelector == null)
-                throw new ArgumentNullException("timeoutDurationSelector");
+                throw new ArgumentNullException(nameof(timeoutDurationSelector));
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             return s_impl.Timeout<TSource, TTimeout>(source, firstTimeout, timeoutDurationSelector, other);
         }
@@ -1664,7 +1664,7 @@ namespace System.Reactive.Linq
         public static IObservable<long> Timer(TimeSpan dueTime, TimeSpan period)
         {
             if (period < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("period");
+                throw new ArgumentOutOfRangeException(nameof(period));
 
             return s_impl.Timer(dueTime, period);
         }
@@ -1679,7 +1679,7 @@ namespace System.Reactive.Linq
         public static IObservable<long> Timer(DateTimeOffset dueTime, TimeSpan period)
         {
             if (period < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("period");
+                throw new ArgumentOutOfRangeException(nameof(period));
 
             return s_impl.Timer(dueTime, period);
         }
@@ -1694,7 +1694,7 @@ namespace System.Reactive.Linq
         public static IObservable<long> Timer(TimeSpan dueTime, IScheduler scheduler)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Timer(dueTime, scheduler);
         }
@@ -1709,7 +1709,7 @@ namespace System.Reactive.Linq
         public static IObservable<long> Timer(DateTimeOffset dueTime, IScheduler scheduler)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Timer(dueTime, scheduler);
         }
@@ -1726,9 +1726,9 @@ namespace System.Reactive.Linq
         public static IObservable<long> Timer(TimeSpan dueTime, TimeSpan period, IScheduler scheduler)
         {
             if (period < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("period");
+                throw new ArgumentOutOfRangeException(nameof(period));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Timer(dueTime, period, scheduler);
         }
@@ -1745,9 +1745,9 @@ namespace System.Reactive.Linq
         public static IObservable<long> Timer(DateTimeOffset dueTime, TimeSpan period, IScheduler scheduler)
         {
             if (period < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("period");
+                throw new ArgumentOutOfRangeException(nameof(period));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Timer(dueTime, period, scheduler);
         }
@@ -1766,7 +1766,7 @@ namespace System.Reactive.Linq
         public static IObservable<Timestamped<TSource>> Timestamp<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return s_impl.Timestamp<TSource>(source);
         }
@@ -1782,9 +1782,9 @@ namespace System.Reactive.Linq
         public static IObservable<Timestamped<TSource>> Timestamp<TSource>(this IObservable<TSource> source, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Timestamp<TSource>(source, scheduler);
         }
@@ -1812,9 +1812,9 @@ namespace System.Reactive.Linq
         public static IObservable<IObservable<TSource>> Window<TSource>(this IObservable<TSource> source, TimeSpan timeSpan)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (timeSpan < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("timeSpan");
+                throw new ArgumentOutOfRangeException(nameof(timeSpan));
 
             return s_impl.Window<TSource>(source, timeSpan);
         }
@@ -1837,11 +1837,11 @@ namespace System.Reactive.Linq
         public static IObservable<IObservable<TSource>> Window<TSource>(this IObservable<TSource> source, TimeSpan timeSpan, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (timeSpan < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("timeSpan");
+                throw new ArgumentOutOfRangeException(nameof(timeSpan));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Window<TSource>(source, timeSpan, scheduler);
         }
@@ -1871,11 +1871,11 @@ namespace System.Reactive.Linq
         public static IObservable<IObservable<TSource>> Window<TSource>(this IObservable<TSource> source, TimeSpan timeSpan, TimeSpan timeShift)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (timeSpan < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("timeSpan");
+                throw new ArgumentOutOfRangeException(nameof(timeSpan));
             if (timeShift < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("timeShift");
+                throw new ArgumentOutOfRangeException(nameof(timeShift));
 
             return s_impl.Window<TSource>(source, timeSpan, timeShift);
         }
@@ -1906,13 +1906,13 @@ namespace System.Reactive.Linq
         public static IObservable<IObservable<TSource>> Window<TSource>(this IObservable<TSource> source, TimeSpan timeSpan, TimeSpan timeShift, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (timeSpan < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("timeSpan");
+                throw new ArgumentOutOfRangeException(nameof(timeSpan));
             if (timeShift < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("timeShift");
+                throw new ArgumentOutOfRangeException(nameof(timeShift));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Window<TSource>(source, timeSpan, timeShift, scheduler);
         }
@@ -1940,11 +1940,11 @@ namespace System.Reactive.Linq
         public static IObservable<IObservable<TSource>> Window<TSource>(this IObservable<TSource> source, TimeSpan timeSpan, int count)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (timeSpan < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("timeSpan");
+                throw new ArgumentOutOfRangeException(nameof(timeSpan));
             if (count <= 0)
-                throw new ArgumentOutOfRangeException("count");
+                throw new ArgumentOutOfRangeException(nameof(count));
 
             return s_impl.Window<TSource>(source, timeSpan, count);
         }
@@ -1969,13 +1969,13 @@ namespace System.Reactive.Linq
         public static IObservable<IObservable<TSource>> Window<TSource>(this IObservable<TSource> source, TimeSpan timeSpan, int count, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (timeSpan < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("timeSpan");
+                throw new ArgumentOutOfRangeException(nameof(timeSpan));
             if (count <= 0)
-                throw new ArgumentOutOfRangeException("count");
+                throw new ArgumentOutOfRangeException(nameof(count));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return s_impl.Window<TSource>(source, timeSpan, count, scheduler);
         }

+ 1 - 1
Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable/Never.cs

@@ -13,7 +13,7 @@ namespace System.Reactive.Linq.ObservableImpl
         public IDisposable Subscribe(IObserver<TResult> observer)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             return Disposable.Empty;
         }

+ 3 - 3
Rx.NET/Source/System.Reactive.Linq/Reactive/Subjects/AsyncSubject.cs

@@ -125,7 +125,7 @@ namespace System.Reactive.Subjects
         public override void OnError(Exception error)
         {
             if (error == null)
-                throw new ArgumentNullException("error");
+                throw new ArgumentNullException(nameof(error));
 
             var os = default(IObserver<T>[]);
             lock (_gate)
@@ -177,7 +177,7 @@ namespace System.Reactive.Subjects
         public override IDisposable Subscribe(IObserver<T> observer)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             var ex = default(Exception);
             var v = default(T);
@@ -288,7 +288,7 @@ namespace System.Reactive.Subjects
         public void OnCompleted(Action continuation)
         {
             if (continuation == null)
-                throw new ArgumentNullException("continuation");
+                throw new ArgumentNullException(nameof(continuation));
 
             OnCompleted(continuation, true);
         }

+ 2 - 2
Rx.NET/Source/System.Reactive.Linq/Reactive/Subjects/BehaviorSubject.cs

@@ -172,7 +172,7 @@ namespace System.Reactive.Subjects
         public override void OnError(Exception error)
         {
             if (error == null)
-                throw new ArgumentNullException("error");
+                throw new ArgumentNullException(nameof(error));
 
             var os = default(IObserver<T>[]);
             lock (_gate)
@@ -233,7 +233,7 @@ namespace System.Reactive.Subjects
         public override IDisposable Subscribe(IObserver<T> observer)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             var ex = default(Exception);
 

+ 1 - 1
Rx.NET/Source/System.Reactive.Linq/Reactive/Subjects/ConnectableObservable.cs

@@ -84,7 +84,7 @@ namespace System.Reactive.Subjects
         public IDisposable Subscribe(IObserver<TResult> observer)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             return _subject.SubscribeSafe(observer);
         }

+ 5 - 5
Rx.NET/Source/System.Reactive.Linq/Reactive/Subjects/ReplaySubject.cs

@@ -183,7 +183,7 @@ namespace System.Reactive.Subjects
         public override void OnError(Exception error)
         {
             if (error == null)
-                throw new ArgumentNullException("error");
+                throw new ArgumentNullException(nameof(error));
 
             _implementation.OnError(error);
         }
@@ -209,7 +209,7 @@ namespace System.Reactive.Subjects
         public override IDisposable Subscribe(IObserver<T> observer)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             return _implementation.Subscribe(observer);
         }
@@ -519,11 +519,11 @@ namespace System.Reactive.Subjects
             public ReplayByTime(int bufferSize, TimeSpan window, IScheduler scheduler)
             {
                 if (bufferSize < 0)
-                    throw new ArgumentOutOfRangeException("bufferSize");
+                    throw new ArgumentOutOfRangeException(nameof(bufferSize));
                 if (window < TimeSpan.Zero)
-                    throw new ArgumentOutOfRangeException("window");
+                    throw new ArgumentOutOfRangeException(nameof(window));
                 if (scheduler == null)
-                    throw new ArgumentNullException("scheduler");
+                    throw new ArgumentNullException(nameof(scheduler));
 
                 _bufferSize = bufferSize;
                 _window = window;

+ 12 - 12
Rx.NET/Source/System.Reactive.Linq/Reactive/Subjects/Subject.Extensions.cs

@@ -24,9 +24,9 @@ namespace System.Reactive.Subjects
         public static ISubject<TSource, TResult> Create<TSource, TResult>(IObserver<TSource> observer, IObservable<TResult> observable)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
             if (observable == null)
-                throw new ArgumentNullException("observable");
+                throw new ArgumentNullException(nameof(observable));
 
             return new AnonymousSubject<TSource, TResult>(observer, observable);
         }
@@ -42,9 +42,9 @@ namespace System.Reactive.Subjects
         public static ISubject<T> Create<T>(IObserver<T> observer, IObservable<T> observable)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
             if (observable == null)
-                throw new ArgumentNullException("observable");
+                throw new ArgumentNullException(nameof(observable));
 
             return new AnonymousSubject<T>(observer, observable);
         }
@@ -60,7 +60,7 @@ namespace System.Reactive.Subjects
         public static ISubject<TSource, TResult> Synchronize<TSource, TResult>(ISubject<TSource, TResult> subject)
         {
             if (subject == null)
-                throw new ArgumentNullException("subject");
+                throw new ArgumentNullException(nameof(subject));
 
             return new AnonymousSubject<TSource, TResult>(Observer.Synchronize(subject), subject);
         }
@@ -75,7 +75,7 @@ namespace System.Reactive.Subjects
         public static ISubject<TSource> Synchronize<TSource>(ISubject<TSource> subject)
         {
             if (subject == null)
-                throw new ArgumentNullException("subject");
+                throw new ArgumentNullException(nameof(subject));
 
             return new AnonymousSubject<TSource>(Observer.Synchronize(subject), subject);
         }
@@ -92,9 +92,9 @@ namespace System.Reactive.Subjects
         public static ISubject<TSource, TResult> Synchronize<TSource, TResult>(ISubject<TSource, TResult> subject, IScheduler scheduler)
         {
             if (subject == null)
-                throw new ArgumentNullException("subject");
+                throw new ArgumentNullException(nameof(subject));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return new AnonymousSubject<TSource, TResult>(Observer.Synchronize(subject), subject.ObserveOn(scheduler));
         }
@@ -110,9 +110,9 @@ namespace System.Reactive.Subjects
         public static ISubject<TSource> Synchronize<TSource>(ISubject<TSource> subject, IScheduler scheduler)
         {
             if (subject == null)
-                throw new ArgumentNullException("subject");
+                throw new ArgumentNullException(nameof(subject));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return new AnonymousSubject<TSource>(Observer.Synchronize(subject), subject.ObserveOn(scheduler));
         }
@@ -136,7 +136,7 @@ namespace System.Reactive.Subjects
             public void OnError(Exception error)
             {
                 if (error == null)
-                    throw new ArgumentNullException("error");
+                    throw new ArgumentNullException(nameof(error));
 
                 _observer.OnError(error);
             }
@@ -149,7 +149,7 @@ namespace System.Reactive.Subjects
             public IDisposable Subscribe(IObserver<U> observer)
             {
                 if (observer == null)
-                    throw new ArgumentNullException("observer");
+                    throw new ArgumentNullException(nameof(observer));
 
                 //
                 // [OK] Use of unsafe Subscribe: non-pretentious wrapping of an observable sequence.

+ 2 - 2
Rx.NET/Source/System.Reactive.Linq/Reactive/Subjects/Subject.cs

@@ -92,7 +92,7 @@ namespace System.Reactive.Subjects
         public override void OnError(Exception error)
         {
             if (error == null)
-                throw new ArgumentNullException("error");
+                throw new ArgumentNullException(nameof(error));
 
             var oldObserver = default(IObserver<T>);
             var newObserver = new DoneObserver<T> { Exception = error };
@@ -132,7 +132,7 @@ namespace System.Reactive.Subjects
         public override IDisposable Subscribe(IObserver<T> observer)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             var oldObserver = default(IObserver<T>);
             var newObserver = default(IObserver<T>);

+ 10 - 10
Rx.NET/Source/System.Reactive.Linq/Reactive/Threading/Tasks/TaskObservableExtensions.cs

@@ -28,7 +28,7 @@ namespace System.Reactive.Threading.Tasks
         public static IObservable<Unit> ToObservable(this Task task)
         {
             if (task == null)
-                throw new ArgumentNullException("task");
+                throw new ArgumentNullException(nameof(task));
 
             return ToObservableImpl(task, null);
         }
@@ -44,9 +44,9 @@ namespace System.Reactive.Threading.Tasks
         public static IObservable<Unit> ToObservable(this Task task, IScheduler scheduler)
         {
             if (task == null)
-                throw new ArgumentNullException("task");
+                throw new ArgumentNullException(nameof(task));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return ToObservableImpl(task, scheduler);
         }
@@ -122,7 +122,7 @@ namespace System.Reactive.Threading.Tasks
         public static IObservable<TResult> ToObservable<TResult>(this Task<TResult> task)
         {
             if (task == null)
-                throw new ArgumentNullException("task");
+                throw new ArgumentNullException(nameof(task));
 
             return ToObservableImpl(task, null);
         }
@@ -139,9 +139,9 @@ namespace System.Reactive.Threading.Tasks
         public static IObservable<TResult> ToObservable<TResult>(this Task<TResult> task, IScheduler scheduler)
         {
             if (task == null)
-                throw new ArgumentNullException("task");
+                throw new ArgumentNullException(nameof(task));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return ToObservableImpl(task, scheduler);
         }
@@ -250,7 +250,7 @@ namespace System.Reactive.Threading.Tasks
         public static Task<TResult> ToTask<TResult>(this IObservable<TResult> observable)
         {
             if (observable == null)
-                throw new ArgumentNullException("observable");
+                throw new ArgumentNullException(nameof(observable));
 
             return observable.ToTask(new CancellationToken(), null);
         }
@@ -266,7 +266,7 @@ namespace System.Reactive.Threading.Tasks
         public static Task<TResult> ToTask<TResult>(this IObservable<TResult> observable, object state)
         {
             if (observable == null)
-                throw new ArgumentNullException("observable");
+                throw new ArgumentNullException(nameof(observable));
 
             return observable.ToTask(new CancellationToken(), state);
         }
@@ -282,7 +282,7 @@ namespace System.Reactive.Threading.Tasks
         public static Task<TResult> ToTask<TResult>(this IObservable<TResult> observable, CancellationToken cancellationToken)
         {
             if (observable == null)
-                throw new ArgumentNullException("observable");
+                throw new ArgumentNullException(nameof(observable));
 
             return observable.ToTask(cancellationToken, null);
         }
@@ -299,7 +299,7 @@ namespace System.Reactive.Threading.Tasks
         public static Task<TResult> ToTask<TResult>(this IObservable<TResult> observable, CancellationToken cancellationToken, object state)
         {
             if (observable == null)
-                throw new ArgumentNullException("observable");
+                throw new ArgumentNullException(nameof(observable));
 
             var hasValue = false;
             var lastValue = default(TResult);

+ 1 - 1
Rx.NET/Source/System.Reactive.PlatformServices/Reactive/Concurrency/ConcurrencyAbstractionLayerImpl.cs

@@ -25,7 +25,7 @@ namespace System.Reactive.Concurrency
         public IDisposable StartPeriodicTimer(Action action, TimeSpan period)
         {
             if (period < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("period");
+                throw new ArgumentOutOfRangeException(nameof(period));
 
             //
             // The contract for periodic scheduling in Rx is that specifying TimeSpan.Zero as the period causes the scheduler to 

+ 4 - 4
Rx.NET/Source/System.Reactive.PlatformServices/Reactive/Concurrency/EventLoopScheduler.cs

@@ -103,7 +103,7 @@ namespace System.Reactive.Concurrency
         public EventLoopScheduler(Func<ThreadStart, Thread> threadFactory)
         {
             if (threadFactory == null)
-                throw new ArgumentNullException("threadFactory");
+                throw new ArgumentNullException(nameof(threadFactory));
 #else
         internal EventLoopScheduler(Func<ThreadStart, Thread> threadFactory)
         {
@@ -158,7 +158,7 @@ namespace System.Reactive.Concurrency
         public override IDisposable Schedule<TState>(TState state, TimeSpan dueTime, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var due = _stopwatch.Elapsed + dueTime;
             var si = new ScheduledItem<TimeSpan, TState>(this, state, action, due);
@@ -199,9 +199,9 @@ namespace System.Reactive.Concurrency
         public IDisposable SchedulePeriodic<TState>(TState state, TimeSpan period, Func<TState, TState> action)
         {
             if (period < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("period");
+                throw new ArgumentOutOfRangeException(nameof(period));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var start = _stopwatch.Elapsed;
             var next = start + period;

+ 5 - 5
Rx.NET/Source/System.Reactive.PlatformServices/Reactive/Concurrency/NewThreadScheduler.cs

@@ -44,7 +44,7 @@ namespace System.Reactive.Concurrency
         public NewThreadScheduler(Func<ThreadStart, Thread> threadFactory)
         {
             if (threadFactory == null)
-                throw new ArgumentNullException("threadFactory");
+                throw new ArgumentNullException(nameof(threadFactory));
 #else
         private NewThreadScheduler(Func<ThreadStart, Thread> threadFactory)
         {
@@ -64,7 +64,7 @@ namespace System.Reactive.Concurrency
         public override IDisposable Schedule<TState>(TState state, TimeSpan dueTime, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var scheduler = new EventLoopScheduler(_threadFactory);
             scheduler.ExitIfEmpty = true;
@@ -82,7 +82,7 @@ namespace System.Reactive.Concurrency
         public IDisposable ScheduleLongRunning<TState>(TState state, Action<TState, ICancelable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var d = new BooleanDisposable();
 
@@ -114,9 +114,9 @@ namespace System.Reactive.Concurrency
         public IDisposable SchedulePeriodic<TState>(TState state, TimeSpan period, Func<TState, TState> action)
         {
             if (period < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("period");
+                throw new ArgumentOutOfRangeException(nameof(period));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var periodic = new Periodic<TState>(state, period, action);
 

+ 5 - 5
Rx.NET/Source/System.Reactive.PlatformServices/Reactive/Concurrency/TaskPoolScheduler.cs

@@ -26,7 +26,7 @@ namespace System.Reactive.Concurrency
         public TaskPoolScheduler(TaskFactory taskFactory)
         {
             if (taskFactory == null)
-                throw new ArgumentNullException("taskFactory");
+                throw new ArgumentNullException(nameof(taskFactory));
 
             this.taskFactory = taskFactory;
         }
@@ -53,7 +53,7 @@ namespace System.Reactive.Concurrency
         public override IDisposable Schedule<TState>(TState state, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var d = new SerialDisposable();
             var cancelable = new CancellationDisposable();
@@ -101,7 +101,7 @@ namespace System.Reactive.Concurrency
         public override IDisposable Schedule<TState>(TState state, TimeSpan dueTime, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var dt = Scheduler.Normalize(dueTime);
             if (dt.Ticks == 0)
@@ -179,9 +179,9 @@ namespace System.Reactive.Concurrency
         public IDisposable SchedulePeriodic<TState>(TState state, TimeSpan period, Func<TState, TState> action)
         {
             if (period < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("period");
+                throw new ArgumentOutOfRangeException(nameof(period));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
 #if !NO_TASK_DELAY
             var cancel = new CancellationDisposable();

+ 5 - 5
Rx.NET/Source/System.Reactive.PlatformServices/Reactive/Concurrency/ThreadPoolScheduler.cs

@@ -44,7 +44,7 @@ namespace System.Reactive.Concurrency
         public override IDisposable Schedule<TState>(TState state, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var d = new SingleAssignmentDisposable();
 
@@ -69,7 +69,7 @@ namespace System.Reactive.Concurrency
         public override IDisposable Schedule<TState>(TState state, TimeSpan dueTime, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var dt = Scheduler.Normalize(dueTime);
             if (dt.Ticks == 0)
@@ -89,7 +89,7 @@ namespace System.Reactive.Concurrency
         public IDisposable ScheduleLongRunning<TState>(TState state, Action<TState, ICancelable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             return s_newBackgroundThread.Value.ScheduleLongRunning(state, action);
         }
@@ -123,9 +123,9 @@ namespace System.Reactive.Concurrency
         public IDisposable SchedulePeriodic<TState>(TState state, TimeSpan period, Func<TState, TState> action)
         {
             if (period < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("period");
+                throw new ArgumentOutOfRangeException(nameof(period));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             if (period == TimeSpan.Zero)
             {

+ 29 - 29
Rx.NET/Source/System.Reactive.Providers/Reactive/Joins/QueryablePattern.cs

@@ -55,7 +55,7 @@ namespace System.Reactive.Joins
         public QueryablePattern<TSource1, TSource2, TSource3> And<TSource3>(IObservable<TSource3> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             var t = typeof(QueryablePattern<TSource1, TSource2>);
             var m = t.GetMethod("And").MakeGenericMethod(typeof(TSource3));
@@ -79,7 +79,7 @@ namespace System.Reactive.Joins
         public QueryablePlan<TResult> Then<TResult>(Expression<Func<TSource1, TSource2, TResult>> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             var t = typeof(QueryablePattern<TSource1, TSource2>);
             var m = t.GetMethod("Then").MakeGenericMethod(typeof(TResult));
@@ -118,7 +118,7 @@ namespace System.Reactive.Joins
         public QueryablePattern<TSource1, TSource2, TSource3, TSource4> And<TSource4>(IObservable<TSource4> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3>);
             var m = t.GetMethod("And").MakeGenericMethod(typeof(TSource4));
@@ -142,7 +142,7 @@ namespace System.Reactive.Joins
         public QueryablePlan<TResult> Then<TResult>(Expression<Func<TSource1, TSource2, TSource3, TResult>> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3>);
             var m = t.GetMethod("Then").MakeGenericMethod(typeof(TResult));
@@ -183,7 +183,7 @@ namespace System.Reactive.Joins
         public QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5> And<TSource5>(IObservable<TSource5> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4>);
             var m = t.GetMethod("And").MakeGenericMethod(typeof(TSource5));
@@ -208,7 +208,7 @@ namespace System.Reactive.Joins
         public QueryablePlan<TResult> Then<TResult>(Expression<Func<TSource1, TSource2, TSource3, TSource4, TResult>> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4>);
             var m = t.GetMethod("Then").MakeGenericMethod(typeof(TResult));
@@ -250,7 +250,7 @@ namespace System.Reactive.Joins
         public QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6> And<TSource6>(IObservable<TSource6> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5>);
             var m = t.GetMethod("And").MakeGenericMethod(typeof(TSource6));
@@ -274,7 +274,7 @@ namespace System.Reactive.Joins
         public QueryablePlan<TResult> Then<TResult>(Expression<Func<TSource1, TSource2, TSource3, TSource4, TSource5, TResult>> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5>);
             var m = t.GetMethod("Then").MakeGenericMethod(typeof(TResult));
@@ -316,7 +316,7 @@ namespace System.Reactive.Joins
         public QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7> And<TSource7>(IObservable<TSource7> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6>);
             var m = t.GetMethod("And").MakeGenericMethod(typeof(TSource7));
@@ -340,7 +340,7 @@ namespace System.Reactive.Joins
         public QueryablePlan<TResult> Then<TResult>(Expression<Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TResult>> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6>);
             var m = t.GetMethod("Then").MakeGenericMethod(typeof(TResult));
@@ -383,7 +383,7 @@ namespace System.Reactive.Joins
         public QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8> And<TSource8>(IObservable<TSource8> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7>);
             var m = t.GetMethod("And").MakeGenericMethod(typeof(TSource8));
@@ -407,7 +407,7 @@ namespace System.Reactive.Joins
         public QueryablePlan<TResult> Then<TResult>(Expression<Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TResult>> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7>);
             var m = t.GetMethod("Then").MakeGenericMethod(typeof(TResult));
@@ -451,7 +451,7 @@ namespace System.Reactive.Joins
         public QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9> And<TSource9>(IObservable<TSource9> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8>);
             var m = t.GetMethod("And").MakeGenericMethod(typeof(TSource9));
@@ -475,7 +475,7 @@ namespace System.Reactive.Joins
         public QueryablePlan<TResult> Then<TResult>(Expression<Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TResult>> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8>);
             var m = t.GetMethod("Then").MakeGenericMethod(typeof(TResult));
@@ -520,7 +520,7 @@ namespace System.Reactive.Joins
         public QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10> And<TSource10>(IObservable<TSource10> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9>);
             var m = t.GetMethod("And").MakeGenericMethod(typeof(TSource10));
@@ -544,7 +544,7 @@ namespace System.Reactive.Joins
         public QueryablePlan<TResult> Then<TResult>(Expression<Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TResult>> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9>);
             var m = t.GetMethod("Then").MakeGenericMethod(typeof(TResult));
@@ -590,7 +590,7 @@ namespace System.Reactive.Joins
         public QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11> And<TSource11>(IObservable<TSource11> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10>);
             var m = t.GetMethod("And").MakeGenericMethod(typeof(TSource11));
@@ -614,7 +614,7 @@ namespace System.Reactive.Joins
         public QueryablePlan<TResult> Then<TResult>(Expression<Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TResult>> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10>);
             var m = t.GetMethod("Then").MakeGenericMethod(typeof(TResult));
@@ -661,7 +661,7 @@ namespace System.Reactive.Joins
         public QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12> And<TSource12>(IObservable<TSource12> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11>);
             var m = t.GetMethod("And").MakeGenericMethod(typeof(TSource12));
@@ -685,7 +685,7 @@ namespace System.Reactive.Joins
         public QueryablePlan<TResult> Then<TResult>(Expression<Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TResult>> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11>);
             var m = t.GetMethod("Then").MakeGenericMethod(typeof(TResult));
@@ -733,7 +733,7 @@ namespace System.Reactive.Joins
         public QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13> And<TSource13>(IObservable<TSource13> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12>);
             var m = t.GetMethod("And").MakeGenericMethod(typeof(TSource13));
@@ -757,7 +757,7 @@ namespace System.Reactive.Joins
         public QueryablePlan<TResult> Then<TResult>(Expression<Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TResult>> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12>);
             var m = t.GetMethod("Then").MakeGenericMethod(typeof(TResult));
@@ -806,7 +806,7 @@ namespace System.Reactive.Joins
         public QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14> And<TSource14>(IObservable<TSource14> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13>);
             var m = t.GetMethod("And").MakeGenericMethod(typeof(TSource14));
@@ -830,7 +830,7 @@ namespace System.Reactive.Joins
         public QueryablePlan<TResult> Then<TResult>(Expression<Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TResult>> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13>);
             var m = t.GetMethod("Then").MakeGenericMethod(typeof(TResult));
@@ -880,7 +880,7 @@ namespace System.Reactive.Joins
         public QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15> And<TSource15>(IObservable<TSource15> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14>);
             var m = t.GetMethod("And").MakeGenericMethod(typeof(TSource15));
@@ -904,7 +904,7 @@ namespace System.Reactive.Joins
         public QueryablePlan<TResult> Then<TResult>(Expression<Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TResult>> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14>);
             var m = t.GetMethod("Then").MakeGenericMethod(typeof(TResult));
@@ -955,7 +955,7 @@ namespace System.Reactive.Joins
         public QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TSource16> And<TSource16>(IObservable<TSource16> other)
         {
             if (other == null)
-                throw new ArgumentNullException("other");
+                throw new ArgumentNullException(nameof(other));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15>);
             var m = t.GetMethod("And").MakeGenericMethod(typeof(TSource16));
@@ -979,7 +979,7 @@ namespace System.Reactive.Joins
         public QueryablePlan<TResult> Then<TResult>(Expression<Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TResult>> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15>);
             var m = t.GetMethod("Then").MakeGenericMethod(typeof(TResult));
@@ -1031,7 +1031,7 @@ namespace System.Reactive.Joins
         public QueryablePlan<TResult> Then<TResult>(Expression<Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TSource16, TResult>> selector)
         {
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             var t = typeof(QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TSource16>);
             var m = t.GetMethod("Then").MakeGenericMethod(typeof(TResult));

+ 1 - 1
Rx.NET/Source/System.Reactive.Providers/Reactive/Linq/Observable.Queryable.cs

@@ -34,7 +34,7 @@ namespace System.Reactive.Linq
         public static IQbservable<TSource> AsQbservable<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return new ObservableQuery<TSource>(source);
         }

+ 8 - 8
Rx.NET/Source/System.Reactive.Providers/Reactive/Linq/Qbservable.Joins.cs

@@ -28,9 +28,9 @@ namespace System.Reactive.Linq
         public static QueryablePattern<TLeft, TRight> And<TLeft, TRight>(this IQbservable<TLeft> left, IObservable<TRight> right)
         {
             if (left == null)
-                throw new ArgumentNullException("left");
+                throw new ArgumentNullException(nameof(left));
             if (right == null)
-                throw new ArgumentNullException("right");
+                throw new ArgumentNullException(nameof(right));
 
             return new QueryablePattern<TLeft, TRight>(
                 Expression.Call(
@@ -58,9 +58,9 @@ namespace System.Reactive.Linq
         public static QueryablePlan<TResult> Then<TSource, TResult>(this IQbservable<TSource> source, Expression<Func<TSource, TResult>> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return new QueryablePlan<TResult>(
                 Expression.Call(
@@ -87,9 +87,9 @@ namespace System.Reactive.Linq
         public static IQbservable<TResult> When<TResult>(this IQbservableProvider provider, params QueryablePlan<TResult>[] plans)
         {
             if (provider == null)
-                throw new ArgumentNullException("provider");
+                throw new ArgumentNullException(nameof(provider));
             if (plans == null)
-                throw new ArgumentNullException("plans");
+                throw new ArgumentNullException(nameof(plans));
 
             return provider.CreateQuery<TResult>(
                 Expression.Call(
@@ -119,9 +119,9 @@ namespace System.Reactive.Linq
         public static IQbservable<TResult> When<TResult>(this IQbservableProvider provider, IEnumerable<QueryablePlan<TResult>> plans)
         {
             if (provider == null)
-                throw new ArgumentNullException("provider");
+                throw new ArgumentNullException(nameof(provider));
             if (plans == null)
-                throw new ArgumentNullException("plans");
+                throw new ArgumentNullException(nameof(plans));
 
             return provider.CreateQuery<TResult>(
                 Expression.Call(

+ 4 - 4
Rx.NET/Source/System.Reactive.Providers/Reactive/Linq/Qbservable.cs

@@ -30,7 +30,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> AsObservable<TSource>(this IQbservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return source;
         }
@@ -46,7 +46,7 @@ namespace System.Reactive.Linq
         public static IQbservable<TSource> ToQbservable<TSource>(this IQueryable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return ((IQbservableProvider)source.Provider).CreateQuery<TSource>(
                 Expression.Call(
@@ -73,9 +73,9 @@ namespace System.Reactive.Linq
         public static IQbservable<TSource> ToQbservable<TSource>(this IQueryable<TSource> source, IScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             return ((IQbservableProvider)source.Provider).CreateQuery<TSource>(
                 Expression.Call(

+ 3 - 3
Rx.NET/Source/System.Reactive.Providers/Reactive/ObservableQuery.cs

@@ -17,9 +17,9 @@ namespace System.Reactive
         public IQbservable<TResult> CreateQuery<TResult>(Expression expression)
         {
             if (expression == null)
-                throw new ArgumentNullException("expression");
+                throw new ArgumentNullException(nameof(expression));
             if (!typeof(IObservable<TResult>).IsAssignableFrom(expression.Type))
-                throw new ArgumentException(Strings_Providers.INVALID_TREE_TYPE, "expression");
+                throw new ArgumentException(Strings_Providers.INVALID_TREE_TYPE, nameof(expression));
 
             return new ObservableQuery<TResult>(expression);
         }
@@ -39,7 +39,7 @@ namespace System.Reactive
             //
             var call = expression as MethodCallExpression;
             if (call == null || call.Method.DeclaringType != typeof(Qbservable) || call.Method.Name != "ToQueryable")
-                throw new ArgumentException(Strings_Providers.EXPECTED_TOQUERYABLE_METHODCALL, "expression");
+                throw new ArgumentException(Strings_Providers.EXPECTED_TOQUERYABLE_METHODCALL, nameof(expression));
 
             //
             // This is the IQbservable<T> object corresponding to the lhs. Now wrap

+ 4 - 4
Rx.NET/Source/System.Reactive.Runtime.Remoting/Reactive/Linq/Observable.Remoting.cs

@@ -27,7 +27,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Remotable<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return Remotable_<TSource>(source);
         }
@@ -44,7 +44,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> Remotable<TSource>(this IObservable<TSource> source, ILease lease)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return Remotable_<TSource>(source, lease);
         }
@@ -60,7 +60,7 @@ namespace System.Reactive.Linq
         public static IQbservable<TSource> Remotable<TSource>(this IQbservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return source.Provider.CreateQuery<TSource>(
                 Expression.Call(
@@ -87,7 +87,7 @@ namespace System.Reactive.Linq
         public static IQbservable<TSource> Remotable<TSource>(this IQbservable<TSource> source, ILease lease)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return source.Provider.CreateQuery<TSource>(
                 Expression.Call(

+ 5 - 5
Rx.NET/Source/System.Reactive.Windows.Forms/Reactive/Concurrency/ControlScheduler.cs

@@ -26,7 +26,7 @@ namespace System.Reactive.Concurrency
         public ControlScheduler(Control control)
         {
             if (control == null)
-                throw new ArgumentNullException("control");
+                throw new ArgumentNullException(nameof(control));
 
             _control = control;
         }
@@ -50,7 +50,7 @@ namespace System.Reactive.Concurrency
         public override IDisposable Schedule<TState>(TState state, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var d = new SingleAssignmentDisposable();
 
@@ -75,7 +75,7 @@ namespace System.Reactive.Concurrency
         public override IDisposable Schedule<TState>(TState state, TimeSpan dueTime, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var dt = Scheduler.Normalize(dueTime);
             if (dt.Ticks == 0)
@@ -146,9 +146,9 @@ namespace System.Reactive.Concurrency
             // Threshold derived from Interval property setter in ndp\fx\src\winforms\managed\system\winforms\Timer.cs.
             //
             if (period.TotalMilliseconds < 1)
-                throw new ArgumentOutOfRangeException("period");
+                throw new ArgumentOutOfRangeException(nameof(period));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var createTimer = new Func<IScheduler, TState, IDisposable>((scheduler1, state1) =>
             {

+ 4 - 4
Rx.NET/Source/System.Reactive.Windows.Forms/Reactive/Linq/ControlObservable.cs

@@ -27,9 +27,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> SubscribeOn<TSource>(this IObservable<TSource> source, Control control)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (control == null)
-                throw new ArgumentNullException("control");
+                throw new ArgumentNullException(nameof(control));
 
             return Synchronization.SubscribeOn(source, new ControlScheduler(control));
         }
@@ -45,9 +45,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> ObserveOn<TSource>(this IObservable<TSource> source, Control control)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (control == null)
-                throw new ArgumentNullException("control");
+                throw new ArgumentNullException(nameof(control));
 
             return Synchronization.ObserveOn(source, new ControlScheduler(control));
         }

+ 6 - 6
Rx.NET/Source/System.Reactive.Windows.Threading/Reactive/Concurrency/DispatcherScheduler.cs

@@ -67,7 +67,7 @@ namespace System.Reactive.Concurrency
         public DispatcherScheduler(System.Windows.Threading.Dispatcher dispatcher)
         {
             if (dispatcher == null)
-                throw new ArgumentNullException("dispatcher");
+                throw new ArgumentNullException(nameof(dispatcher));
 
             _dispatcher = dispatcher;
 #if HAS_DISPATCHER_PRIORITY
@@ -85,7 +85,7 @@ namespace System.Reactive.Concurrency
         public DispatcherScheduler(System.Windows.Threading.Dispatcher dispatcher, System.Windows.Threading.DispatcherPriority priority)
         {
             if (dispatcher == null)
-                throw new ArgumentNullException("dispatcher");
+                throw new ArgumentNullException(nameof(dispatcher));
 
             _dispatcher = dispatcher;
             _priority = priority;
@@ -121,7 +121,7 @@ namespace System.Reactive.Concurrency
         public override IDisposable Schedule<TState>(TState state, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var d = new SingleAssignmentDisposable();
 
@@ -151,7 +151,7 @@ namespace System.Reactive.Concurrency
         public override IDisposable Schedule<TState>(TState state, TimeSpan dueTime, Func<IScheduler, TState, IDisposable> action)
         {
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var dt = Scheduler.Normalize(dueTime);
             if (dt.Ticks == 0)
@@ -213,9 +213,9 @@ namespace System.Reactive.Concurrency
         public IDisposable SchedulePeriodic<TState>(TState state, TimeSpan period, Func<TState, TState> action)
         {
             if (period < TimeSpan.Zero)
-                throw new ArgumentOutOfRangeException("period");
+                throw new ArgumentOutOfRangeException(nameof(period));
             if (action == null)
-                throw new ArgumentNullException("action");
+                throw new ArgumentNullException(nameof(action));
 
             var timer = new System.Windows.Threading.DispatcherTimer(
 #if HAS_DISPATCHER_PRIORITY

+ 24 - 24
Rx.NET/Source/System.Reactive.Windows.Threading/Reactive/Linq/DispatcherObservable.cs

@@ -27,9 +27,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> ObserveOn<TSource>(this IObservable<TSource> source, Dispatcher dispatcher)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (dispatcher == null)
-                throw new ArgumentNullException("dispatcher");
+                throw new ArgumentNullException(nameof(dispatcher));
 
             return ObserveOn_<TSource>(source, dispatcher);
         }
@@ -47,9 +47,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> ObserveOn<TSource>(this IObservable<TSource> source, Dispatcher dispatcher, DispatcherPriority priority)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (dispatcher == null)
-                throw new ArgumentNullException("dispatcher");
+                throw new ArgumentNullException(nameof(dispatcher));
 
             return ObserveOn_<TSource>(source, dispatcher, priority);
         }
@@ -66,9 +66,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> ObserveOn<TSource>(this IObservable<TSource> source, DispatcherScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
 #if HAS_DISPATCHER_PRIORITY
             return ObserveOn_<TSource>(source, scheduler.Dispatcher, scheduler.Priority);
@@ -107,9 +107,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> ObserveOn<TSource>(this IObservable<TSource> source, DispatcherObject dispatcherObject)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (dispatcherObject == null)
-                throw new ArgumentNullException("dispatcherObject");
+                throw new ArgumentNullException(nameof(dispatcherObject));
 
             return ObserveOn_<TSource>(source, dispatcherObject.Dispatcher);
         }
@@ -128,9 +128,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> ObserveOn<TSource>(this IObservable<TSource> source, DispatcherObject dispatcherObject, DispatcherPriority priority)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (dispatcherObject == null)
-                throw new ArgumentNullException("dispatcherObject");
+                throw new ArgumentNullException(nameof(dispatcherObject));
 
             return ObserveOn_<TSource>(source, dispatcherObject.Dispatcher, priority);
         }
@@ -146,7 +146,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> ObserveOnDispatcher<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
 #if USE_SL_DISPATCHER
             return ObserveOn_<TSource>(source, System.Windows.Deployment.Current.Dispatcher);
@@ -167,7 +167,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> ObserveOnDispatcher<TSource>(this IObservable<TSource> source, DispatcherPriority priority)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return ObserveOn_<TSource>(source, DispatcherScheduler.Current.Dispatcher, priority);
         }
@@ -202,9 +202,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> SubscribeOn<TSource>(this IObservable<TSource> source, Dispatcher dispatcher)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (dispatcher == null)
-                throw new ArgumentNullException("dispatcher");
+                throw new ArgumentNullException(nameof(dispatcher));
 
             return SubscribeOn_<TSource>(source, dispatcher);
         }
@@ -226,9 +226,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> SubscribeOn<TSource>(this IObservable<TSource> source, Dispatcher dispatcher, DispatcherPriority priority)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (dispatcher == null)
-                throw new ArgumentNullException("dispatcher");
+                throw new ArgumentNullException(nameof(dispatcher));
 
             return SubscribeOn_<TSource>(source, dispatcher, priority);
         }
@@ -249,9 +249,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> SubscribeOn<TSource>(this IObservable<TSource> source, DispatcherScheduler scheduler)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
 #if HAS_DISPATCHER_PRIORITY
             return SubscribeOn_<TSource>(source, scheduler.Dispatcher, scheduler.Priority);
@@ -298,9 +298,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> SubscribeOn<TSource>(this IObservable<TSource> source, DispatcherObject dispatcherObject)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (dispatcherObject == null)
-                throw new ArgumentNullException("dispatcherObject");
+                throw new ArgumentNullException(nameof(dispatcherObject));
 
             return SubscribeOn_<TSource>(source, dispatcherObject.Dispatcher);
         }
@@ -323,9 +323,9 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> SubscribeOn<TSource>(this IObservable<TSource> source, DispatcherObject dispatcherObject, DispatcherPriority priority)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (dispatcherObject == null)
-                throw new ArgumentNullException("dispatcherObject");
+                throw new ArgumentNullException(nameof(dispatcherObject));
 
             return SubscribeOn_<TSource>(source, dispatcherObject.Dispatcher, priority);
         }
@@ -345,7 +345,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> SubscribeOnDispatcher<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
 #if USE_SL_DISPATCHER
             return SubscribeOn_<TSource>(source, System.Windows.Deployment.Current.Dispatcher);
@@ -370,7 +370,7 @@ namespace System.Reactive.Linq
         public static IObservable<TSource> SubscribeOnDispatcher<TSource>(this IObservable<TSource> source, DispatcherPriority priority)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return SubscribeOn_<TSource>(source, DispatcherScheduler.Current.Dispatcher, priority);
         }

+ 13 - 13
Rx.NET/Source/System.Reactive.WindowsRuntime/Foundation/AsyncInfoExtensions.cs

@@ -28,7 +28,7 @@ namespace System.Reactive.Windows.Foundation
         public static IObservable<Unit> ToObservable(this IAsyncAction source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return new AsyncInfoToObservableBridge<Unit, Unit>(
                 source,
@@ -51,7 +51,7 @@ namespace System.Reactive.Windows.Foundation
         public static IObservable<Unit> ToObservable<TProgress>(this IAsyncActionWithProgress<TProgress> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return source.ToObservable_(null);
         }
@@ -68,9 +68,9 @@ namespace System.Reactive.Windows.Foundation
         public static IObservable<Unit> ToObservable<TProgress>(this IAsyncActionWithProgress<TProgress> source, IProgress<TProgress> progress)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (progress == null)
-                throw new ArgumentNullException("progress");
+                throw new ArgumentNullException(nameof(progress));
 
             return source.ToObservable_(progress);
         }
@@ -86,7 +86,7 @@ namespace System.Reactive.Windows.Foundation
         public static IObservable<TProgress> ToObservableProgress<TProgress>(this IAsyncActionWithProgress<TProgress> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return Observable.Create<TProgress>(observer =>
             {
@@ -123,7 +123,7 @@ namespace System.Reactive.Windows.Foundation
         public static IObservable<TResult> ToObservable<TResult>(this IAsyncOperation<TResult> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return new AsyncInfoToObservableBridge<TResult, Unit>(
                 source,
@@ -147,7 +147,7 @@ namespace System.Reactive.Windows.Foundation
         public static IObservable<TResult> ToObservable<TResult, TProgress>(this IAsyncOperationWithProgress<TResult, TProgress> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return source.ToObservable_(null, false);
         }
@@ -165,9 +165,9 @@ namespace System.Reactive.Windows.Foundation
         public static IObservable<TResult> ToObservable<TResult, TProgress>(this IAsyncOperationWithProgress<TResult, TProgress> source, IProgress<TProgress> progress)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (progress == null)
-                throw new ArgumentNullException("progress");
+                throw new ArgumentNullException(nameof(progress));
 
             return source.ToObservable_(progress, false);
         }
@@ -184,7 +184,7 @@ namespace System.Reactive.Windows.Foundation
         public static IObservable<TProgress> ToObservableProgress<TResult, TProgress>(this IAsyncOperationWithProgress<TResult, TProgress> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return Observable.Create<TProgress>(observer =>
             {
@@ -207,7 +207,7 @@ namespace System.Reactive.Windows.Foundation
         public static IObservable<TResult> ToObservableMultiple<TResult, TProgress>(this IAsyncOperationWithProgress<TResult, TProgress> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return source.ToObservable_(null, true);
         }
@@ -226,9 +226,9 @@ namespace System.Reactive.Windows.Foundation
         public static IObservable<TResult> ToObservableMultiple<TResult, TProgress>(this IAsyncOperationWithProgress<TResult, TProgress> source, IProgress<TProgress> progress)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (progress == null)
-                throw new ArgumentNullException("progress");
+                throw new ArgumentNullException(nameof(progress));
 
             return source.ToObservable_(progress, true);
         }

+ 11 - 11
Rx.NET/Source/System.Reactive.WindowsRuntime/Linq/AsyncInfoObservable.cs

@@ -31,7 +31,7 @@ namespace System.Reactive.Linq
         public static IAsyncAction ToAsyncAction<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return AsyncInfo.Run(ct => (Task)source.DefaultIfEmpty().ToTask(ct));
         }
@@ -49,7 +49,7 @@ namespace System.Reactive.Linq
         public static IAsyncActionWithProgress<int> ToAsyncActionWithProgress<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return AsyncInfo.Run<int>((ct, progress) =>
             {
@@ -71,9 +71,9 @@ namespace System.Reactive.Linq
         public static IAsyncActionWithProgress<TProgress> ToAsyncActionWithProgress<TSource, TProgress>(this IObservable<TSource> source, Func<IObservable<TSource>, IObservable<TProgress>> progressSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (progressSelector == null)
-                throw new ArgumentNullException("progressSelector");
+                throw new ArgumentNullException(nameof(progressSelector));
 
             return AsyncInfo.Run<TProgress>((ct, progress) =>
             {
@@ -109,7 +109,7 @@ namespace System.Reactive.Linq
         public static IAsyncOperation<TSource> ToAsyncOperation<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return AsyncInfo.Run(ct => source.ToTask(ct));
         }
@@ -125,7 +125,7 @@ namespace System.Reactive.Linq
         public static IAsyncOperationWithProgress<TSource, int> ToAsyncOperationWithProgress<TSource>(this IObservable<TSource> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return AsyncInfo.Run<TSource, int>((ct, progress) =>
             {
@@ -149,9 +149,9 @@ namespace System.Reactive.Linq
         public static IAsyncOperationWithProgress<TResult, int> ToAsyncOperationWithProgress<TSource, TResult>(this IObservable<TSource> source, Func<IObservable<TSource>, IObservable<TResult>> resultSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
 
             return AsyncInfo.Run<TResult, int>((ct, progress) =>
             {
@@ -175,11 +175,11 @@ namespace System.Reactive.Linq
         public static IAsyncOperationWithProgress<TResult, TProgress> ToAsyncOperationWithProgress<TSource, TResult, TProgress>(this IObservable<TSource> source, Func<IObservable<TSource>, IObservable<TResult>> resultSelector, Func<IObservable<TSource>, IObservable<TProgress>> progressSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
             if (progressSelector == null)
-                throw new ArgumentNullException("progressSelector");
+                throw new ArgumentNullException(nameof(progressSelector));
 
             return AsyncInfo.Run<TResult, TProgress>((ct, progress) =>
             {

+ 6 - 6
Rx.NET/Source/System.Reactive.WindowsRuntime/Linq/WindowsObservable.Events.cs

@@ -26,9 +26,9 @@ namespace System.Reactive.Linq
         public static IObservable<EventPattern<TSender, TResult>> FromEventPattern<TSender, TResult>(Action<TypedEventHandler<TSender, TResult>> addHandler, Action<TypedEventHandler<TSender, TResult>> removeHandler)
         {
             if (addHandler == null)
-                throw new ArgumentNullException("addHandler");
+                throw new ArgumentNullException(nameof(addHandler));
             if (removeHandler == null)
-                throw new ArgumentNullException("removeHandler");
+                throw new ArgumentNullException(nameof(removeHandler));
 
             return Observable.Create<EventPattern<TSender, TResult>>(observer =>
             {
@@ -61,11 +61,11 @@ namespace System.Reactive.Linq
         public static IObservable<EventPattern<TSender, TResult>> FromEventPattern<TDelegate, TSender, TResult>(Func<TypedEventHandler<TSender, TResult>, TDelegate> conversion, Action<TDelegate> addHandler, Action<TDelegate> removeHandler)
         {
             if (conversion == null)
-                throw new ArgumentNullException("conversion");
+                throw new ArgumentNullException(nameof(conversion));
             if (addHandler == null)
-                throw new ArgumentNullException("addHandler");
+                throw new ArgumentNullException(nameof(addHandler));
             if (removeHandler == null)
-                throw new ArgumentNullException("removeHandler");
+                throw new ArgumentNullException(nameof(removeHandler));
 
             return Observable.Create<EventPattern<TSender, TResult>>(observer =>
             {
@@ -94,7 +94,7 @@ namespace System.Reactive.Linq
         public static IEventPatternSource<TSender, TEventArgs> ToEventPattern<TSender, TEventArgs>(this IObservable<EventPattern<TSender, TEventArgs>> source)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
 
             return new EventPatternSource<TSender, TEventArgs>(source, (h, evt) => h(evt.Sender, evt.EventArgs));
         }

+ 10 - 10
Rx.NET/Source/System.Reactive.WindowsRuntime/Linq/WindowsObservable.StandardSequenceOperators.cs

@@ -24,9 +24,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TResult>(this IObservable<TSource> source, Func<TSource, IAsyncOperation<TResult>> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return source.SelectMany(x => selector(x).ToObservable());
         }
@@ -45,9 +45,9 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TResult, TProgress>(this IObservable<TSource> source, Func<TSource, IAsyncOperationWithProgress<TResult, TProgress>> selector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (selector == null)
-                throw new ArgumentNullException("selector");
+                throw new ArgumentNullException(nameof(selector));
 
             return source.SelectMany(x => selector(x).ToObservable());
         }
@@ -67,11 +67,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TAsyncOperationResult, TResult>(this IObservable<TSource> source, Func<TSource, IAsyncOperation<TAsyncOperationResult>> asyncOperationSelector, Func<TSource, TAsyncOperationResult, TResult> resultSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (asyncOperationSelector == null)
-                throw new ArgumentNullException("asyncOperationSelector");
+                throw new ArgumentNullException(nameof(asyncOperationSelector));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
 
             return source.SelectMany(x => asyncOperationSelector(x).ToObservable(), resultSelector);
         }
@@ -92,11 +92,11 @@ namespace System.Reactive.Linq
         public static IObservable<TResult> SelectMany<TSource, TAsyncOperationResult, TAsyncOperationProgress, TResult>(this IObservable<TSource> source, Func<TSource, IAsyncOperationWithProgress<TAsyncOperationResult, TAsyncOperationProgress>> asyncOperationSelector, Func<TSource, TAsyncOperationResult, TResult> resultSelector)
         {
             if (source == null)
-                throw new ArgumentNullException("source");
+                throw new ArgumentNullException(nameof(source));
             if (asyncOperationSelector == null)
-                throw new ArgumentNullException("asyncOperationSelector");
+                throw new ArgumentNullException(nameof(asyncOperationSelector));
             if (resultSelector == null)
-                throw new ArgumentNullException("resultSelector");
+                throw new ArgumentNullException(nameof(resultSelector));
 
             return source.SelectMany(x => asyncOperationSelector(x).ToObservable(), resultSelector);
         }

+ 1 - 1
Rx.NET/Source/Tests.System.Reactive/MockDisposable.cs

@@ -17,7 +17,7 @@ namespace ReactiveTests
         public MockDisposable(TestScheduler scheduler)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
 
             this.scheduler = scheduler;
             Add(scheduler.Clock);

+ 2 - 2
Rx.NET/Source/Tests.System.Reactive/MockEnumerable.cs

@@ -19,9 +19,9 @@ namespace ReactiveTests
         public MockEnumerable(TestScheduler scheduler, IEnumerable<T> underlyingEnumerable)
         {
             if (scheduler == null)
-                throw new ArgumentNullException("scheduler");
+                throw new ArgumentNullException(nameof(scheduler));
             if (underlyingEnumerable == null)
-                throw new ArgumentNullException("underlyingEnumerable");
+                throw new ArgumentNullException(nameof(underlyingEnumerable));
 
             this.Scheduler = scheduler;
             this.underlyingEnumerable = underlyingEnumerable;

+ 1 - 1
Rx.NET/Source/Tests.System.Reactive/NullErrorObservable.cs

@@ -18,7 +18,7 @@ namespace ReactiveTests
         public IDisposable Subscribe(IObserver<T> observer)
         {
             if (observer == null)
-                throw new ArgumentNullException("observer");
+                throw new ArgumentNullException(nameof(observer));
 
             observer.OnError(null);
             return Disposable.Empty;

Some files were not shown because too many files changed in this diff