瀏覽代碼

Modernize some code.

Bart De Smet 5 年之前
父節點
當前提交
e592c18176

+ 5 - 10
Rx.NET/Source/src/System.Reactive/Internal/Helpers.cs

@@ -10,17 +10,12 @@ namespace System.Reactive
     {
         public static int? GetLength<T>(IEnumerable<T> source)
         {
-            if (source is T[] array)
+            return source switch
             {
-                return array.Length;
-            }
-
-            if (source is IList<T> list)
-            {
-                return list.Count;
-            }
-
-            return null;
+                T[] array => array.Length,
+                IList<T> list => list.Count,
+                _ => null
+            };
         }
 
         public static IObservable<T> Unpack<T>(IObservable<T> source)

+ 0 - 2
Rx.NET/Source/src/System.Reactive/Internal/Lookup.cs

@@ -19,7 +19,6 @@ namespace System.Reactive
 
         public void Add(K key, E element)
         {
-
             if (!_dictionary.TryGetValue(key, out var list))
             {
                 _dictionary[key] = list = new List<E>();
@@ -36,7 +35,6 @@ namespace System.Reactive
         {
             get
             {
-
                 if (!_dictionary.TryGetValue(key, out var list))
                 {
                     return Enumerable.Empty<E>();

+ 2 - 9
Rx.NET/Source/src/System.Reactive/Internal/PlatformEnlightenmentProvider.cs

@@ -45,15 +45,8 @@ namespace System.Reactive.PlatformServices
         [Obsolete("This mechanism will be removed in the next major version", false)]
         public static IPlatformEnlightenmentProvider Current
         {
-            get
-            {
-                return _current;
-            }
-
-            set
-            {
-                _current = value ?? throw new ArgumentNullException(nameof(value));
-            }
+            get => _current;
+            set => _current = value ?? throw new ArgumentNullException(nameof(value));
 
         }
 

+ 3 - 3
Rx.NET/Source/src/System.Reactive/Internal/ScheduledObserver.cs

@@ -91,8 +91,7 @@ namespace System.Reactive
                     return;
                 }
 
-                var next = default(T);
-                while (_queue.TryDequeue(out next))
+                while (_queue.TryDequeue(out var next))
                 {
                     try
                     {
@@ -205,7 +204,8 @@ namespace System.Reactive
 
         private void Run(object state, Action<object> recurse)
         {
-            var next = default(T);
+            T next;
+
             while (!_queue.TryDequeue(out next))
             {
                 if (_failed)

+ 5 - 20
Rx.NET/Source/src/System.Reactive/Internal/Sink.cs

@@ -91,15 +91,9 @@ namespace System.Reactive
 
         public abstract void OnNext(TSource value);
 
-        public virtual void OnError(Exception error)
-        {
-            ForwardOnError(error);
-        }
+        public virtual void OnError(Exception error) => ForwardOnError(error);
 
-        public virtual void OnCompleted()
-        {
-            ForwardOnCompleted();
-        }
+        public virtual void OnCompleted() => ForwardOnCompleted();
 
         public IObserver<TTarget> GetForwarder() => new _(this);
 
@@ -112,20 +106,11 @@ namespace System.Reactive
                 _forward = forward;
             }
 
-            public void OnNext(TTarget value)
-            {
-                _forward.ForwardOnNext(value);
-            }
+            public void OnNext(TTarget value) => _forward.ForwardOnNext(value);
 
-            public void OnError(Exception error)
-            {
-                _forward.ForwardOnError(error);
-            }
+            public void OnError(Exception error) => _forward.ForwardOnError(error);
 
-            public void OnCompleted()
-            {
-                _forward.ForwardOnCompleted();
-            }
+            public void OnCompleted() => _forward.ForwardOnCompleted();
         }
     }
 }

+ 1 - 4
Rx.NET/Source/src/System.Reactive/Internal/StopwatchImpl.cs

@@ -15,10 +15,7 @@ namespace System.Reactive.Concurrency
     {
         private readonly Stopwatch _sw;
 
-        public StopwatchImpl()
-        {
-            _sw = Stopwatch.StartNew();
-        }
+        public StopwatchImpl() => _sw = Stopwatch.StartNew();
 
         public TimeSpan Elapsed => _sw.Elapsed;
     }

+ 2 - 3
Rx.NET/Source/src/System.Reactive/Internal/TailRecursiveSink.cs

@@ -67,7 +67,6 @@ namespace System.Reactive
                         var currentEnumerator = _stack.Peek();
 
                         var currentObservable = default(IObservable<TSource>);
-                        var next = default(IObservable<TSource>);
 
                         try
                         {
@@ -84,14 +83,14 @@ namespace System.Reactive
                             continue;
                         }
 
+                        IObservable<TSource> next;
+
                         try
                         {
                             next = Helpers.Unpack(currentObservable);
-
                         }
                         catch (Exception ex)
                         {
-                            next = null;
                             if (!Fail(ex))
                             {
                                 Volatile.Write(ref _isDisposed, true);

+ 1 - 4
Rx.NET/Source/src/System.Reactive/ListObservable.cs

@@ -167,10 +167,7 @@ namespace System.Reactive
         /// <summary>
         /// Gets a value that indicates whether the ListObservable is read-only.
         /// </summary>
-        public bool IsReadOnly
-        {
-            get { return false; }
-        }
+        public bool IsReadOnly => false;
 
         /// <summary>
         /// Removes the first occurrence of a specific object from the ListObservable.

+ 1 - 1
Rx.NET/Source/src/System.Reactive/Notification.cs

@@ -565,7 +565,7 @@ namespace System.Reactive
                 return true;
             }
 
-            if ((object)left == null || (object)right == null)
+            if (left is null || right is null)
             {
                 return false;
             }

+ 1 - 1
Rx.NET/Source/src/System.Reactive/Runtime/CompilerServices/TaskObservableMethodBuilder.cs

@@ -109,7 +109,7 @@ namespace System.Runtime.CompilerServices
         /// <summary>
         /// Gets the observable sequence for this builder.
         /// </summary>
-        public ITaskObservable<T> Task => _inner ?? (_inner = new TaskObservable());
+        public ITaskObservable<T> Task => _inner ??= new TaskObservable();
 
         /// <summary>
         /// Schedules the state machine to proceed to the next action when the specified awaiter completes.

+ 14 - 19
Rx.NET/Source/src/System.Reactive/Threading/Tasks/TaskObservableExtensions.cs

@@ -6,7 +6,6 @@ using System.Reactive.Concurrency;
 using System.Reactive.Disposables;
 using System.Reactive.Linq;
 using System.Reactive.Linq.ObservableImpl;
-using System.Reactive.Subjects;
 using System.Threading;
 using System.Threading.Tasks;
 
@@ -77,7 +76,9 @@ namespace System.Reactive.Threading.Tasks
                 var options = GetTaskContinuationOptions(_scheduler);
 
                 if (_scheduler == null)
+                {
                     _task.ContinueWith((t, subjectObject) => t.EmitTaskResult((IObserver<TResult>)subjectObject), observer, cts.Token, options, TaskScheduler.Current);
+                }
                 else
                 {
                     _task.ContinueWithState(
@@ -136,17 +137,14 @@ namespace System.Reactive.Threading.Tasks
         {
             if (task.IsCompleted)
             {
-                scheduler = scheduler ?? ImmediateScheduler.Instance;
+                scheduler ??= ImmediateScheduler.Instance;
 
-                switch (task.Status)
+                return task.Status switch
                 {
-                    case TaskStatus.Faulted:
-                        return new Throw<Unit>(task.Exception.InnerException, scheduler);
-                    case TaskStatus.Canceled:
-                        return new Throw<Unit>(new TaskCanceledException(task), scheduler);
-                }
-
-                return new Return<Unit>(Unit.Default, scheduler);
+                    TaskStatus.Faulted => new Throw<Unit>(task.Exception.InnerException, scheduler),
+                    TaskStatus.Canceled => new Throw<Unit>(new TaskCanceledException(task), scheduler),
+                    _ => new Return<Unit>(Unit.Default, scheduler)
+                };
             }
 
             return new SlowTaskObservable(task, scheduler);
@@ -235,17 +233,14 @@ namespace System.Reactive.Threading.Tasks
         {
             if (task.IsCompleted)
             {
-                scheduler = scheduler ?? ImmediateScheduler.Instance;
+                scheduler ??= ImmediateScheduler.Instance;
 
-                switch (task.Status)
+                return task.Status switch
                 {
-                    case TaskStatus.Faulted:
-                        return new Throw<TResult>(task.Exception.InnerException, scheduler);
-                    case TaskStatus.Canceled:
-                        return new Throw<TResult>(new TaskCanceledException(task), scheduler);
-                }
-
-                return new Return<TResult>(task.Result, scheduler);
+                    TaskStatus.Faulted => new Throw<TResult>(task.Exception.InnerException, scheduler),
+                    TaskStatus.Canceled => new Throw<TResult>(new TaskCanceledException(task), scheduler),
+                    _ => new Return<TResult>(task.Result, scheduler)
+                };
             }
 
             return new SlowTaskObservable<TResult>(task, scheduler);