浏览代码

Implement Bart's review.

Daniel Weber 5 年之前
父节点
当前提交
ffeafd16f8

+ 1 - 0
Rx.NET/Source/src/System.Reactive/Disposables/Disposable.Utils.cs

@@ -43,6 +43,7 @@ namespace System.Reactive.Disposables
                 : current;
         }
 
+        /// <summary>
         /// Tries to assign <paramref name="value" /> to <paramref name="fieldRef" />.
         /// </summary>
         /// <returns>A <see cref="TrySetSingleResult"/> value indicating the outcome of the operation.</returns>

+ 7 - 7
Rx.NET/Source/src/System.Reactive/Linq/Observable/DefaultIfEmpty.cs

@@ -4,27 +4,27 @@
 
 namespace System.Reactive.Linq.ObservableImpl
 {
-    internal sealed class DefaultIfEmpty<TSource> : Producer<TSource?, DefaultIfEmpty<TSource>._>
+    internal sealed class DefaultIfEmpty<TSource> : Producer<TSource, DefaultIfEmpty<TSource>._>
     {
         private readonly IObservable<TSource> _source;
-        private readonly TSource? _defaultValue;
+        private readonly TSource _defaultValue;
 
-        public DefaultIfEmpty(IObservable<TSource> source, TSource? defaultValue)
+        public DefaultIfEmpty(IObservable<TSource> source, TSource defaultValue)
         {
             _source = source;
             _defaultValue = defaultValue;
         }
 
-        protected override _ CreateSink(IObserver<TSource?> observer) => new _(_defaultValue, observer);
+        protected override _ CreateSink(IObserver<TSource> observer) => new _(_defaultValue, observer);
 
         protected override void Run(_ sink) => sink.Run(_source);
 
-        internal sealed class _ : Sink<TSource, TSource?>
+        internal sealed class _ : IdentitySink<TSource>
         {
-            private readonly TSource? _defaultValue;
+            private readonly TSource _defaultValue;
             private bool _found;
 
-            public _(TSource? defaultValue, IObserver<TSource?> observer)
+            public _(TSource defaultValue, IObserver<TSource> observer)
                 : base(observer)
             {
                 _defaultValue = defaultValue;

+ 1 - 3
Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.StandardSequenceOperators.cs

@@ -26,14 +26,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource?> DefaultIfEmpty<TSource>(IObservable<TSource> source)
         {
-            return new DefaultIfEmpty<TSource>(source, default);
+            return DefaultIfEmpty(source, default!);
         }
 
         public virtual IObservable<TSource> DefaultIfEmpty<TSource>(IObservable<TSource> source, TSource defaultValue)
         {
-#pragma warning disable CS8619 // Nullability of reference types in value doesn't match target type.
             return new DefaultIfEmpty<TSource>(source, defaultValue);
-#pragma warning restore CS8619 // Nullability of reference types in value doesn't match target type.
         }
 
         #endregion