diff --git a/.editorconfig b/.editorconfig index de41f1de01..885c40bd93 100644 --- a/.editorconfig +++ b/.editorconfig @@ -42,9 +42,9 @@ dotnet_style_qualification_for_method = false:suggestion dotnet_style_qualification_for_event = false:suggestion # Types: use keywords instead of BCL types, and permit var only when the type is clear -csharp_style_var_for_built_in_types = false:suggestion -csharp_style_var_when_type_is_apparent = false:none -csharp_style_var_elsewhere = false:suggestion +csharp_style_var_for_built_in_types = true:suggestion +csharp_style_var_when_type_is_apparent = true:none +csharp_style_var_elsewhere = true:suggestion dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion dotnet_style_predefined_type_for_member_access = true:suggestion diff --git a/src/ReactiveUI.Fody.Analyzer.Test/Helpers/CodeFixVerifier.Helper.cs b/src/ReactiveUI.Fody.Analyzer.Test/Helpers/CodeFixVerifier.Helper.cs index 04cf86496a..d60e69b77f 100644 --- a/src/ReactiveUI.Fody.Analyzer.Test/Helpers/CodeFixVerifier.Helper.cs +++ b/src/ReactiveUI.Fody.Analyzer.Test/Helpers/CodeFixVerifier.Helper.cs @@ -48,8 +48,8 @@ private static IEnumerable GetNewDiagnostics(IEnumerable var oldArray = diagnostics.OrderBy(d => d.Location.SourceSpan.Start).ToArray(); var newArray = newDiagnostics.OrderBy(d => d.Location.SourceSpan.Start).ToArray(); - int oldIndex = 0; - int newIndex = 0; + var oldIndex = 0; + var newIndex = 0; while (newIndex < newArray.Length) { diff --git a/src/ReactiveUI.Fody.Analyzer.Test/Helpers/DiagnosticResult.cs b/src/ReactiveUI.Fody.Analyzer.Test/Helpers/DiagnosticResult.cs index 538166b3dc..018c7c128d 100644 --- a/src/ReactiveUI.Fody.Analyzer.Test/Helpers/DiagnosticResult.cs +++ b/src/ReactiveUI.Fody.Analyzer.Test/Helpers/DiagnosticResult.cs @@ -91,7 +91,7 @@ public bool Equals(DiagnosticResult other) => /// public override int GetHashCode() { - int hashCode = 1054991603; + var hashCode = 1054991603; hashCode = (hashCode * -1521134295) + EqualityComparer>.Default.GetHashCode(_locations); hashCode = (hashCode * -1521134295) + EqualityComparer>.Default.GetHashCode(Locations); hashCode = (hashCode * -1521134295) + Severity.GetHashCode(); diff --git a/src/ReactiveUI.Fody.Analyzer.Test/Helpers/DiagnosticVerifier.Helper.cs b/src/ReactiveUI.Fody.Analyzer.Test/Helpers/DiagnosticVerifier.Helper.cs index 5af168e04c..de4cb0f259 100644 --- a/src/ReactiveUI.Fody.Analyzer.Test/Helpers/DiagnosticVerifier.Helper.cs +++ b/src/ReactiveUI.Fody.Analyzer.Test/Helpers/DiagnosticVerifier.Helper.cs @@ -148,8 +148,8 @@ private static Document[] GetDocuments(string[] sources, string language) /// A Project created out of the Documents created from the source strings. private static Project? CreateProject(string[] sources, string language = LanguageNames.CSharp) { - string fileNamePrefix = DefaultFilePathPrefix; - string fileExt = language == LanguageNames.CSharp ? CSharpDefaultFileExt : VisualBasicDefaultExt; + var fileNamePrefix = DefaultFilePathPrefix; + var fileExt = language == LanguageNames.CSharp ? CSharpDefaultFileExt : VisualBasicDefaultExt; var projectId = ProjectId.CreateNewId(debugName: TestProjectName); @@ -163,7 +163,7 @@ private static Document[] GetDocuments(string[] sources, string language) .AddMetadataReference(projectId, ReactiveUi) .AddMetadataReference(projectId, ReactiveUiHelper); - int count = 0; + var count = 0; foreach (var source in sources) { var newFileName = fileNamePrefix + count + "." + fileExt; diff --git a/src/ReactiveUI.Fody.Analyzer.Test/Verifiers/DiagnosticVerifier.cs b/src/ReactiveUI.Fody.Analyzer.Test/Verifiers/DiagnosticVerifier.cs index 878bf23597..f4464ca9ba 100644 --- a/src/ReactiveUI.Fody.Analyzer.Test/Verifiers/DiagnosticVerifier.cs +++ b/src/ReactiveUI.Fody.Analyzer.Test/Verifiers/DiagnosticVerifier.cs @@ -74,20 +74,20 @@ public abstract partial class DiagnosticVerifier /// Diagnostic Results that should have appeared in the code. private static void VerifyDiagnosticResults(IEnumerable actualResults, DiagnosticAnalyzer analyzer, params DiagnosticResult[] expectedResults) { - int expectedCount = expectedResults.Length; + var expectedCount = expectedResults.Length; var actualCountList = actualResults.ToList(); - int actualCount = actualCountList.Count; + var actualCount = actualCountList.Count; if (expectedCount != actualCount) { - string diagnosticsOutput = actualCountList.Any() ? FormatDiagnostics(analyzer, actualCountList.ToArray()) : " NONE."; + var diagnosticsOutput = actualCountList.Any() ? FormatDiagnostics(analyzer, actualCountList.ToArray()) : " NONE."; Assert.True( false, $"Mismatch between number of diagnostics returned, expected \"{expectedCount}\" actual \"{actualCount}\"\r\n\r\nDiagnostics:\r\n{diagnosticsOutput}\r\n"); } - for (int i = 0; i < expectedResults.Length; i++) + for (var i = 0; i < expectedResults.Length; i++) { var actual = actualCountList[i]; var expected = expectedResults[i]; @@ -113,7 +113,7 @@ private static void VerifyDiagnosticResults(IEnumerable actualResult $"Expected {expected.Locations.Count - 1} additional locations but got {additionalLocations.Length} for Diagnostic:\r\n {FormatDiagnostics(analyzer, actual)}\r\n"); } - for (int j = 0; j < additionalLocations.Length; ++j) + for (var j = 0; j < additionalLocations.Length; ++j) { VerifyDiagnosticLocation(analyzer, actual, additionalLocations[j], expected.Locations[j + 1]); } @@ -192,7 +192,7 @@ private static void VerifyDiagnosticLocation(DiagnosticAnalyzer analyzer, Diagno private static string FormatDiagnostics(DiagnosticAnalyzer analyzer, params Diagnostic[] diagnostics) { var builder = new StringBuilder(); - for (int i = 0; i < diagnostics.Length; ++i) + for (var i = 0; i < diagnostics.Length; ++i) { builder.AppendLine("// " + diagnostics[i].ToString()); @@ -214,7 +214,7 @@ private static string FormatDiagnostics(DiagnosticAnalyzer analyzer, params Diag location.IsInSource, $"Test base does not currently handle diagnostics in metadata locations. Diagnostic in metadata: {diagnostics[i]}\r\n"); - string resultMethodName = diagnostics[i].Location.SourceTree!.FilePath.EndsWith(".cs", StringComparison.Ordinal) ? "GetCSharpResultAt" : "GetBasicResultAt"; + var resultMethodName = diagnostics[i].Location.SourceTree!.FilePath.EndsWith(".cs", StringComparison.Ordinal) ? "GetCSharpResultAt" : "GetBasicResultAt"; var linePosition = diagnostics[i].Location.GetLineSpan().StartLinePosition; builder.Append($"{resultMethodName}({linePosition.Line + 1}, {linePosition.Character + 1}, {analyzerType.Name}.{rule.Id})"); diff --git a/src/ReactiveUI.Fody.Analyzer/ReactiveObjectAnalyzer.cs b/src/ReactiveUI.Fody.Analyzer/ReactiveObjectAnalyzer.cs index 51da244307..ce7fe17f2d 100644 --- a/src/ReactiveUI.Fody.Analyzer/ReactiveObjectAnalyzer.cs +++ b/src/ReactiveUI.Fody.Analyzer/ReactiveObjectAnalyzer.cs @@ -116,8 +116,8 @@ private static bool HasBackingField(PropertyDeclarationSyntax property) return setter?.ExpressionBody is not null && getter?.ExpressionBody is not null; } - bool setterHasBodyStatements = setter.Body.Statements.Any(); - bool getterHasBodyStatements = getter.Body.Statements.Any(); + var setterHasBodyStatements = setter.Body.Statements.Any(); + var getterHasBodyStatements = getter.Body.Statements.Any(); return setterHasBodyStatements && getterHasBodyStatements; } diff --git a/src/ReactiveUI.Fody.Tests/ApiApprovalBase.cs b/src/ReactiveUI.Fody.Tests/ApiApprovalBase.cs index 20cc3af022..b1e260247e 100644 --- a/src/ReactiveUI.Fody.Tests/ApiApprovalBase.cs +++ b/src/ReactiveUI.Fody.Tests/ApiApprovalBase.cs @@ -45,7 +45,7 @@ protected static void CheckApproval(Assembly assembly, [CallerMemberName]string? var approvedFileName = Path.Combine(sourceDirectory, $"ApiApprovalTests.{memberName}.{targetFrameworkName}.approved.txt"); var receivedFileName = Path.Combine(sourceDirectory, $"ApiApprovalTests.{memberName}.{targetFrameworkName}.received.txt"); - string approvedPublicApi = string.Empty; + var approvedPublicApi = string.Empty; if (File.Exists(approvedFileName)) { diff --git a/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.net472.approved.txt b/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.net472.approved.txt index 66195a7794..966c135fce 100644 --- a/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.net472.approved.txt +++ b/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.net472.approved.txt @@ -221,7 +221,7 @@ namespace ReactiveUI } public interface IObservedChange { - System.Linq.Expressions.Expression Expression { get; } + System.Linq.Expressions.Expression? Expression { get; } TSender Sender { get; } TValue Value { get; } } @@ -317,7 +317,7 @@ namespace ReactiveUI } public interface ISetMethodBindingConverter : Splat.IEnableLogger { - int GetAffinityForObjects(System.Type fromType, System.Type toType); + int GetAffinityForObjects(System.Type? fromType, System.Type? toType); object? PerformSet(object? toTarget, object? newValue, object?[]? arguments); } public interface ISuspensionDriver @@ -447,8 +447,8 @@ namespace ReactiveUI } public class ObservedChange : ReactiveUI.IObservedChange { - public ObservedChange(TSender sender, System.Linq.Expressions.Expression expression, TValue value) { } - public System.Linq.Expressions.Expression Expression { get; } + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } public TSender Sender { get; } public TValue Value { get; } } @@ -600,10 +600,10 @@ namespace ReactiveUI } public static class ReactiveNotifyPropertyChangedMixin { - public static System.IObservable> ObservableForProperty(this TSender item, System.Linq.Expressions.Expression> property, bool beforeChange = false, bool skipInitial = true) { } - public static System.IObservable ObservableForProperty(this TSender item, System.Linq.Expressions.Expression> property, System.Func selector, bool beforeChange = false) + public static System.IObservable> ObservableForProperty(this TSender? item, System.Linq.Expressions.Expression> property, bool beforeChange = false, bool skipInitial = true) { } + public static System.IObservable ObservableForProperty(this TSender? item, System.Linq.Expressions.Expression> property, System.Func selector, bool beforeChange = false) where TSender : class { } - public static System.IObservable> SubscribeToExpressionChain(this TSender source, System.Linq.Expressions.Expression expression, bool beforeChange = false, bool skipInitial = true, bool suppressWarnings = false) { } + public static System.IObservable> SubscribeToExpressionChain(this TSender? source, System.Linq.Expressions.Expression? expression, bool beforeChange = false, bool skipInitial = true, bool suppressWarnings = false) { } } [System.Runtime.Serialization.DataContract] public class ReactiveObject : ReactiveUI.IHandleObservableErrors, ReactiveUI.IReactiveNotifyPropertyChanged, ReactiveUI.IReactiveObject, Splat.IEnableLogger, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.INotifyPropertyChanging @@ -659,15 +659,15 @@ namespace ReactiveUI } public static class Reflection { - public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression expression) { } + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } public static System.Type GetEventArgsTypeForEvent(System.Type type, string eventName) { } - public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } - public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } - public static System.Action GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } - public static System.Action? GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } public static bool IsStatic(this System.Reflection.PropertyInfo item) { } public static System.Type? ReallyFindType(string? type, bool throwOnFailure) { } - public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression expression) { } + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } public static void ThrowIfMethodsNotOverloaded(string callingTypeName, object targetObject, params string[] methodsToCheck) { } public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.IObservedChange<, >[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } @@ -826,97 +826,97 @@ namespace ReactiveUI } public static class WhenAnyMixin { - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Func, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Func, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Linq.Expressions.Expression property7, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Linq.Expressions.Expression property7, System.Linq.Expressions.Expression property8, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Linq.Expressions.Expression property7, System.Linq.Expressions.Expression property8, System.Linq.Expressions.Expression property9, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Linq.Expressions.Expression property7, System.Linq.Expressions.Expression property8, System.Linq.Expressions.Expression property9, System.Linq.Expressions.Expression property10, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Linq.Expressions.Expression property7, System.Linq.Expressions.Expression property8, System.Linq.Expressions.Expression property9, System.Linq.Expressions.Expression property10, System.Linq.Expressions.Expression property11, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Linq.Expressions.Expression property7, System.Linq.Expressions.Expression property8, System.Linq.Expressions.Expression property9, System.Linq.Expressions.Expression property10, System.Linq.Expressions.Expression property11, System.Linq.Expressions.Expression property12, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) { } - public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) { } - public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) { } - public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) { } - public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) { } - public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) { } - public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Func, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Func, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Func selector) { } + public static System.IObservable> WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) { } + public static System.IObservable> WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) { } + public static System.IObservable> WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) { } + public static System.IObservable> WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) { } + public static System.IObservable> WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) { } + public static System.IObservable> WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) { } } public static class WhenAnyObservableMixin { - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Linq.Expressions.Expression>> obs10) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Linq.Expressions.Expression>> obs10, System.Linq.Expressions.Expression>> obs11) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Linq.Expressions.Expression>> obs10, System.Linq.Expressions.Expression>> obs11, System.Linq.Expressions.Expression>> obs12) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Linq.Expressions.Expression>> obs10, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Linq.Expressions.Expression>> obs10, System.Linq.Expressions.Expression>> obs11, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Linq.Expressions.Expression>> obs10, System.Linq.Expressions.Expression>> obs11, System.Linq.Expressions.Expression>> obs12, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } } } diff --git a/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.net5.0.approved.txt b/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.net5.0.approved.txt index 9f28cb433a..52a7d52fb1 100644 --- a/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.net5.0.approved.txt +++ b/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.net5.0.approved.txt @@ -221,7 +221,7 @@ namespace ReactiveUI } public interface IObservedChange { - System.Linq.Expressions.Expression Expression { get; } + System.Linq.Expressions.Expression? Expression { get; } TSender Sender { get; } TValue Value { get; } } @@ -312,7 +312,7 @@ namespace ReactiveUI } public interface ISetMethodBindingConverter : Splat.IEnableLogger { - int GetAffinityForObjects(System.Type fromType, System.Type toType); + int GetAffinityForObjects(System.Type? fromType, System.Type? toType); object? PerformSet(object? toTarget, object? newValue, object?[]? arguments); } public interface ISuspensionDriver @@ -442,8 +442,8 @@ namespace ReactiveUI } public class ObservedChange : ReactiveUI.IObservedChange { - public ObservedChange(TSender sender, System.Linq.Expressions.Expression expression, TValue value) { } - public System.Linq.Expressions.Expression Expression { get; } + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } public TSender Sender { get; } public TValue Value { get; } } @@ -595,10 +595,10 @@ namespace ReactiveUI } public static class ReactiveNotifyPropertyChangedMixin { - public static System.IObservable> ObservableForProperty(this TSender item, System.Linq.Expressions.Expression> property, bool beforeChange = false, bool skipInitial = true) { } - public static System.IObservable ObservableForProperty(this TSender item, System.Linq.Expressions.Expression> property, System.Func selector, bool beforeChange = false) + public static System.IObservable> ObservableForProperty(this TSender? item, System.Linq.Expressions.Expression> property, bool beforeChange = false, bool skipInitial = true) { } + public static System.IObservable ObservableForProperty(this TSender? item, System.Linq.Expressions.Expression> property, System.Func selector, bool beforeChange = false) where TSender : class { } - public static System.IObservable> SubscribeToExpressionChain(this TSender source, System.Linq.Expressions.Expression expression, bool beforeChange = false, bool skipInitial = true, bool suppressWarnings = false) { } + public static System.IObservable> SubscribeToExpressionChain(this TSender? source, System.Linq.Expressions.Expression? expression, bool beforeChange = false, bool skipInitial = true, bool suppressWarnings = false) { } } [System.Runtime.Serialization.DataContract] public class ReactiveObject : ReactiveUI.IHandleObservableErrors, ReactiveUI.IReactiveNotifyPropertyChanged, ReactiveUI.IReactiveObject, Splat.IEnableLogger, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.INotifyPropertyChanging @@ -654,15 +654,15 @@ namespace ReactiveUI } public static class Reflection { - public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression expression) { } + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } public static System.Type GetEventArgsTypeForEvent(System.Type type, string eventName) { } - public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } - public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } - public static System.Action GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } - public static System.Action? GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } public static bool IsStatic(this System.Reflection.PropertyInfo item) { } public static System.Type? ReallyFindType(string? type, bool throwOnFailure) { } - public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression expression) { } + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } public static void ThrowIfMethodsNotOverloaded(string callingTypeName, object targetObject, params string[] methodsToCheck) { } public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.IObservedChange<, >[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } @@ -821,97 +821,97 @@ namespace ReactiveUI } public static class WhenAnyMixin { - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Func, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Func, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Linq.Expressions.Expression property7, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Linq.Expressions.Expression property7, System.Linq.Expressions.Expression property8, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Linq.Expressions.Expression property7, System.Linq.Expressions.Expression property8, System.Linq.Expressions.Expression property9, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Linq.Expressions.Expression property7, System.Linq.Expressions.Expression property8, System.Linq.Expressions.Expression property9, System.Linq.Expressions.Expression property10, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Linq.Expressions.Expression property7, System.Linq.Expressions.Expression property8, System.Linq.Expressions.Expression property9, System.Linq.Expressions.Expression property10, System.Linq.Expressions.Expression property11, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Linq.Expressions.Expression property7, System.Linq.Expressions.Expression property8, System.Linq.Expressions.Expression property9, System.Linq.Expressions.Expression property10, System.Linq.Expressions.Expression property11, System.Linq.Expressions.Expression property12, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) { } - public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) { } - public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) { } - public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) { } - public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) { } - public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) { } - public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Func, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Func, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Func selector) { } + public static System.IObservable> WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) { } + public static System.IObservable> WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) { } + public static System.IObservable> WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) { } + public static System.IObservable> WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) { } + public static System.IObservable> WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) { } + public static System.IObservable> WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) { } } public static class WhenAnyObservableMixin { - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Linq.Expressions.Expression>> obs10) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Linq.Expressions.Expression>> obs10, System.Linq.Expressions.Expression>> obs11) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Linq.Expressions.Expression>> obs10, System.Linq.Expressions.Expression>> obs11, System.Linq.Expressions.Expression>> obs12) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Linq.Expressions.Expression>> obs10, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Linq.Expressions.Expression>> obs10, System.Linq.Expressions.Expression>> obs11, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Linq.Expressions.Expression>> obs10, System.Linq.Expressions.Expression>> obs11, System.Linq.Expressions.Expression>> obs12, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } } } diff --git a/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.netcoreapp3.1.approved.txt b/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.netcoreapp3.1.approved.txt index 1102562a15..fed6f25781 100644 --- a/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.netcoreapp3.1.approved.txt +++ b/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.netcoreapp3.1.approved.txt @@ -219,7 +219,7 @@ namespace ReactiveUI } public interface IObservedChange { - System.Linq.Expressions.Expression Expression { get; } + System.Linq.Expressions.Expression? Expression { get; } TSender Sender { get; } TValue Value { get; } } @@ -310,7 +310,7 @@ namespace ReactiveUI } public interface ISetMethodBindingConverter : Splat.IEnableLogger { - int GetAffinityForObjects(System.Type fromType, System.Type toType); + int GetAffinityForObjects(System.Type? fromType, System.Type? toType); object? PerformSet(object? toTarget, object? newValue, object?[]? arguments); } public interface ISuspensionDriver @@ -440,8 +440,8 @@ namespace ReactiveUI } public class ObservedChange : ReactiveUI.IObservedChange { - public ObservedChange(TSender sender, System.Linq.Expressions.Expression expression, TValue value) { } - public System.Linq.Expressions.Expression Expression { get; } + public ObservedChange(TSender sender, System.Linq.Expressions.Expression? expression, TValue value) { } + public System.Linq.Expressions.Expression? Expression { get; } public TSender Sender { get; } public TValue Value { get; } } @@ -593,10 +593,10 @@ namespace ReactiveUI } public static class ReactiveNotifyPropertyChangedMixin { - public static System.IObservable> ObservableForProperty(this TSender item, System.Linq.Expressions.Expression> property, bool beforeChange = false, bool skipInitial = true) { } - public static System.IObservable ObservableForProperty(this TSender item, System.Linq.Expressions.Expression> property, System.Func selector, bool beforeChange = false) + public static System.IObservable> ObservableForProperty(this TSender? item, System.Linq.Expressions.Expression> property, bool beforeChange = false, bool skipInitial = true) { } + public static System.IObservable ObservableForProperty(this TSender? item, System.Linq.Expressions.Expression> property, System.Func selector, bool beforeChange = false) where TSender : class { } - public static System.IObservable> SubscribeToExpressionChain(this TSender source, System.Linq.Expressions.Expression expression, bool beforeChange = false, bool skipInitial = true, bool suppressWarnings = false) { } + public static System.IObservable> SubscribeToExpressionChain(this TSender? source, System.Linq.Expressions.Expression? expression, bool beforeChange = false, bool skipInitial = true, bool suppressWarnings = false) { } } [System.Runtime.Serialization.DataContract] public class ReactiveObject : ReactiveUI.IHandleObservableErrors, ReactiveUI.IReactiveNotifyPropertyChanged, ReactiveUI.IReactiveObject, Splat.IEnableLogger, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.INotifyPropertyChanging @@ -652,15 +652,15 @@ namespace ReactiveUI } public static class Reflection { - public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression expression) { } + public static string ExpressionToPropertyNames(System.Linq.Expressions.Expression? expression) { } public static System.Type GetEventArgsTypeForEvent(System.Type type, string eventName) { } - public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } - public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } - public static System.Action GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } - public static System.Action? GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Func? GetValueFetcherForProperty(System.Reflection.MemberInfo? member) { } + public static System.Func GetValueFetcherOrThrow(System.Reflection.MemberInfo? member) { } + public static System.Action GetValueSetterForProperty(System.Reflection.MemberInfo? member) { } + public static System.Action? GetValueSetterOrThrow(System.Reflection.MemberInfo? member) { } public static bool IsStatic(this System.Reflection.PropertyInfo item) { } public static System.Type? ReallyFindType(string? type, bool throwOnFailure) { } - public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression expression) { } + public static System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression? expression) { } public static void ThrowIfMethodsNotOverloaded(string callingTypeName, object targetObject, params string[] methodsToCheck) { } public static bool TryGetAllValuesForPropertyChain(out ReactiveUI.IObservedChange<, >[] changeValues, object? current, System.Collections.Generic.IEnumerable expressionChain) { } public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, System.Collections.Generic.IEnumerable expressionChain) { } @@ -819,97 +819,97 @@ namespace ReactiveUI } public static class WhenAnyMixin { - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAny(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Func, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Func, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Linq.Expressions.Expression property7, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Linq.Expressions.Expression property7, System.Linq.Expressions.Expression property8, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Linq.Expressions.Expression property7, System.Linq.Expressions.Expression property8, System.Linq.Expressions.Expression property9, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Linq.Expressions.Expression property7, System.Linq.Expressions.Expression property8, System.Linq.Expressions.Expression property9, System.Linq.Expressions.Expression property10, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Linq.Expressions.Expression property7, System.Linq.Expressions.Expression property8, System.Linq.Expressions.Expression property9, System.Linq.Expressions.Expression property10, System.Linq.Expressions.Expression property11, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyDynamic(this TSender sender, System.Linq.Expressions.Expression property1, System.Linq.Expressions.Expression property2, System.Linq.Expressions.Expression property3, System.Linq.Expressions.Expression property4, System.Linq.Expressions.Expression property5, System.Linq.Expressions.Expression property6, System.Linq.Expressions.Expression property7, System.Linq.Expressions.Expression property8, System.Linq.Expressions.Expression property9, System.Linq.Expressions.Expression property10, System.Linq.Expressions.Expression property11, System.Linq.Expressions.Expression property12, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet> selector) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Func selector) { } - public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) { } - public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) { } - public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) { } - public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) { } - public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) { } - public static System.IObservable> WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) { } - public static System.IObservable WhenAnyValue(this TSender sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Func, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAny(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Func, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Func, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyDynamic(this TSender? sender, System.Linq.Expressions.Expression? property1, System.Linq.Expressions.Expression? property2, System.Linq.Expressions.Expression? property3, System.Linq.Expressions.Expression? property4, System.Linq.Expressions.Expression? property5, System.Linq.Expressions.Expression? property6, System.Linq.Expressions.Expression? property7, System.Linq.Expressions.Expression? property8, System.Linq.Expressions.Expression? property9, System.Linq.Expressions.Expression? property10, System.Linq.Expressions.Expression? property11, System.Linq.Expressions.Expression? property12, System.Func, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, ReactiveUI.IObservedChange, TRet?> selector) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Func selector) { } + public static System.IObservable> WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Func selector) { } + public static System.IObservable> WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Func selector) { } + public static System.IObservable> WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Func selector) { } + public static System.IObservable> WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Func selector) { } + public static System.IObservable> WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Func selector) { } + public static System.IObservable> WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Func selector) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Func selector) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Func selector) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Func selector) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Func selector) { } + public static System.IObservable WhenAnyValue(this TSender? sender, System.Linq.Expressions.Expression> property1, System.Linq.Expressions.Expression> property2, System.Linq.Expressions.Expression> property3, System.Linq.Expressions.Expression> property4, System.Linq.Expressions.Expression> property5, System.Linq.Expressions.Expression> property6, System.Linq.Expressions.Expression> property7, System.Linq.Expressions.Expression> property8, System.Linq.Expressions.Expression> property9, System.Linq.Expressions.Expression> property10, System.Linq.Expressions.Expression> property11, System.Linq.Expressions.Expression> property12, System.Func selector) { } } public static class WhenAnyObservableMixin { - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Linq.Expressions.Expression>> obs10) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Linq.Expressions.Expression>> obs10, System.Linq.Expressions.Expression>> obs11) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Linq.Expressions.Expression>> obs10, System.Linq.Expressions.Expression>> obs11, System.Linq.Expressions.Expression>> obs12) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Linq.Expressions.Expression>> obs10, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Linq.Expressions.Expression>> obs10, System.Linq.Expressions.Expression>> obs11, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Func selector) where TSender : class { } - public static System.IObservable WhenAnyObservable(this TSender sender, System.Linq.Expressions.Expression>> obs1, System.Linq.Expressions.Expression>> obs2, System.Linq.Expressions.Expression>> obs3, System.Linq.Expressions.Expression>> obs4, System.Linq.Expressions.Expression>> obs5, System.Linq.Expressions.Expression>> obs6, System.Linq.Expressions.Expression>> obs7, System.Linq.Expressions.Expression>> obs8, System.Linq.Expressions.Expression>> obs9, System.Linq.Expressions.Expression>> obs10, System.Linq.Expressions.Expression>> obs11, System.Linq.Expressions.Expression>> obs12, System.Func selector) + public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } } } diff --git a/src/ReactiveUI.Tests/Commands/ReactiveCommandTest.cs b/src/ReactiveUI.Tests/Commands/ReactiveCommandTest.cs index 4079c50981..e15a921427 100644 --- a/src/ReactiveUI.Tests/Commands/ReactiveCommandTest.cs +++ b/src/ReactiveUI.Tests/Commands/ReactiveCommandTest.cs @@ -72,7 +72,7 @@ public void CanExecuteIsAvailableViaICommand() public void CanExecuteIsBehavioral() { ReactiveCommand> fixture = ReactiveCommand.Create(() => Observables.Unit, outputScheduler: ImmediateScheduler.Instance); - fixture.CanExecute.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out ReadOnlyObservableCollection canExecute).Subscribe(); + fixture.CanExecute.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var canExecute).Subscribe(); Assert.Equal(1, canExecute.Count); Assert.True(canExecute[0]); @@ -86,9 +86,9 @@ public void CanExecuteIsFalseIfAlreadyExecuting() => new TestScheduler().With( scheduler => { - IObservable execute = Observables.Unit.Delay(TimeSpan.FromSeconds(1), scheduler); + var execute = Observables.Unit.Delay(TimeSpan.FromSeconds(1), scheduler); ReactiveCommand fixture = ReactiveCommand.CreateFromObservable(() => execute, outputScheduler: scheduler); - fixture.CanExecute.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out ReadOnlyObservableCollection canExecute).Subscribe(); + fixture.CanExecute.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var canExecute).Subscribe(); fixture.Execute().Subscribe(); scheduler.AdvanceByMs(100); @@ -110,7 +110,7 @@ public void CanExecuteIsFalseIfCallerDictatesAsSuch() { Subject canExecuteSubject = new(); ReactiveCommand> fixture = ReactiveCommand.Create(() => Observables.Unit, canExecuteSubject, ImmediateScheduler.Instance); - fixture.CanExecute.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out ReadOnlyObservableCollection canExecute).Subscribe(); + fixture.CanExecute.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var canExecute).Subscribe(); canExecuteSubject.OnNext(true); canExecuteSubject.OnNext(false); @@ -145,7 +145,7 @@ public void CanExecuteOnlyTicksDistinctValues() { Subject canExecuteSubject = new(); ReactiveCommand> fixture = ReactiveCommand.Create(() => Observables.Unit, canExecuteSubject, ImmediateScheduler.Instance); - fixture.CanExecute.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out ReadOnlyObservableCollection canExecute).Subscribe(); + fixture.CanExecute.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var canExecute).Subscribe(); canExecuteSubject.OnNext(false); canExecuteSubject.OnNext(false); @@ -167,7 +167,7 @@ public void CanExecuteTicksFailuresThroughThrownExceptions() { Subject canExecuteSubject = new(); ReactiveCommand> fixture = ReactiveCommand.Create(() => Observables.Unit, canExecuteSubject, ImmediateScheduler.Instance); - fixture.ThrownExceptions.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out ReadOnlyObservableCollection thrownExceptions).Subscribe(); + fixture.ThrownExceptions.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var thrownExceptions).Subscribe(); canExecuteSubject.OnError(new InvalidOperationException("oops")); @@ -182,7 +182,7 @@ public void CanExecuteTicksFailuresThroughThrownExceptions() public void CreateTaskFacilitatesTPLIntegration() { ReactiveCommand fixture = ReactiveCommand.CreateFromTask(() => Task.FromResult(13), outputScheduler: ImmediateScheduler.Instance); - fixture.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out ReadOnlyObservableCollection results).Subscribe(); + fixture.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var results).Subscribe(); fixture.Execute().Subscribe(); @@ -197,7 +197,7 @@ public void CreateTaskFacilitatesTPLIntegration() public void CreateTaskFacilitatesTPLIntegrationWithParameter() { ReactiveCommand fixture = ReactiveCommand.CreateFromTask(param => Task.FromResult(param + 1), outputScheduler: ImmediateScheduler.Instance); - fixture.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out ReadOnlyObservableCollection results).Subscribe(); + fixture.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var results).Subscribe(); fixture.Execute(3).Subscribe(); fixture.Execute(41).Subscribe(); @@ -253,12 +253,12 @@ public void ExecuteCanBeCancelled() => new TestScheduler().With( scheduler => { - IObservable execute = Observables.Unit.Delay(TimeSpan.FromSeconds(1), scheduler); + var execute = Observables.Unit.Delay(TimeSpan.FromSeconds(1), scheduler); ReactiveCommand fixture = ReactiveCommand.CreateFromObservable(() => execute, outputScheduler: scheduler); - fixture.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out ReadOnlyObservableCollection executed).Subscribe(); + fixture.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var executed).Subscribe(); - IDisposable sub1 = fixture.Execute().Subscribe(); - IDisposable sub2 = fixture.Execute().Subscribe(); + var sub1 = fixture.Execute().Subscribe(); + var sub2 = fixture.Execute().Subscribe(); scheduler.AdvanceByMs(999); Assert.True(fixture.IsExecuting.FirstAsync().Wait()); @@ -277,7 +277,7 @@ public void ExecuteCanBeCancelled() => public void ExecuteCanTickThroughMultipleResults() { ReactiveCommand fixture = ReactiveCommand.CreateFromObservable(() => new[] { 1, 2, 3 }.ToObservable(), outputScheduler: ImmediateScheduler.Instance); - fixture.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out ReadOnlyObservableCollection results).Subscribe(); + fixture.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var results).Subscribe(); fixture.Execute().Subscribe(); @@ -295,17 +295,17 @@ public void ExecuteFacilitatesAnyNumberOfInFlightExecutions() => new TestScheduler().With( scheduler => { - IObservable execute = Observables.Unit.Delay(TimeSpan.FromMilliseconds(500), scheduler); + var execute = Observables.Unit.Delay(TimeSpan.FromMilliseconds(500), scheduler); ReactiveCommand fixture = ReactiveCommand.CreateFromObservable(() => execute, outputScheduler: scheduler); - fixture.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out ReadOnlyObservableCollection executed).Subscribe(); + fixture.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var executed).Subscribe(); - IDisposable sub1 = fixture.Execute().Subscribe(); - IDisposable sub2 = fixture.Execute().Subscribe(); + var sub1 = fixture.Execute().Subscribe(); + var sub2 = fixture.Execute().Subscribe(); scheduler.AdvanceByMs(100); - IDisposable sub3 = fixture.Execute().Subscribe(); + var sub3 = fixture.Execute().Subscribe(); scheduler.AdvanceByMs(200); - IDisposable sub4 = fixture.Execute().Subscribe(); + var sub4 = fixture.Execute().Subscribe(); scheduler.AdvanceByMs(100); Assert.True(fixture.IsExecuting.FirstAsync().Wait()); @@ -330,7 +330,7 @@ public void ExecuteFacilitatesAnyNumberOfInFlightExecutions() => [Fact] public void ExecuteIsAvailableViaICommand() { - bool executed = false; + var executed = false; ICommand fixture = ReactiveCommand.Create( () => { @@ -375,8 +375,8 @@ public void ExecutePassesThroughParameter() public void ExecuteReenablesExecutionEvenAfterFailure() { ReactiveCommand fixture = ReactiveCommand.CreateFromObservable(() => Observable.Throw(new InvalidOperationException("oops")), outputScheduler: ImmediateScheduler.Instance); - fixture.CanExecute.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out ReadOnlyObservableCollection canExecute).Subscribe(); - fixture.ThrownExceptions.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out ReadOnlyObservableCollection thrownExceptions).Subscribe(); + fixture.CanExecute.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var canExecute).Subscribe(); + fixture.ThrownExceptions.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var thrownExceptions).Subscribe(); fixture.Execute().Subscribe(_ => { }, _ => { }); @@ -397,9 +397,9 @@ public void ExecuteResultIsDeliveredOnSpecifiedScheduler() => new TestScheduler().With( scheduler => { - IObservable execute = Observables.Unit; + var execute = Observables.Unit; ReactiveCommand fixture = ReactiveCommand.CreateFromObservable(() => execute, outputScheduler: scheduler); - bool executed = false; + var executed = false; fixture.Execute().Subscribe(_ => executed = true); @@ -443,7 +443,7 @@ public void ExecuteTicksAnyLambdaException() public void ExecuteTicksErrorsThroughThrownExceptions() { ReactiveCommand fixture = ReactiveCommand.CreateFromObservable(() => Observable.Throw(new InvalidOperationException("oops")), outputScheduler: ImmediateScheduler.Instance); - fixture.ThrownExceptions.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out ReadOnlyObservableCollection thrownExceptions).Subscribe(); + fixture.ThrownExceptions.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var thrownExceptions).Subscribe(); fixture.Execute().Subscribe(_ => { }, _ => { }); @@ -458,7 +458,7 @@ public void ExecuteTicksErrorsThroughThrownExceptions() public void ExecuteTicksLambdaErrorsThroughThrownExceptions() { ReactiveCommand fixture = ReactiveCommand.CreateFromObservable(() => throw new InvalidOperationException("oops"), outputScheduler: ImmediateScheduler.Instance); - fixture.ThrownExceptions.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out ReadOnlyObservableCollection thrownExceptions).Subscribe(); + fixture.ThrownExceptions.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var thrownExceptions).Subscribe(); fixture.Execute().Subscribe(_ => { }, _ => { }); @@ -473,9 +473,9 @@ public void ExecuteTicksLambdaErrorsThroughThrownExceptions() [Fact] public void ExecuteTicksThroughTheResult() { - int num = 0; + var num = 0; ReactiveCommand fixture = ReactiveCommand.CreateFromObservable(() => Observable.Return(num), outputScheduler: ImmediateScheduler.Instance); - fixture.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out ReadOnlyObservableCollection results).Subscribe(); + fixture.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var results).Subscribe(); num = 1; fixture.Execute().Subscribe(); @@ -497,7 +497,7 @@ public void ExecuteTicksThroughTheResult() public void ExecuteViaICommandThrowsIfParameterTypeIsIncorrect() { ICommand fixture = ReactiveCommand.Create(_ => { }, outputScheduler: ImmediateScheduler.Instance); - InvalidOperationException ex = Assert.Throws(() => fixture.Execute("foo")); + var ex = Assert.Throws(() => fixture.Execute("foo")); Assert.Equal("Command requires parameters of type System.Int32, but received parameter of type System.String.", ex.Message); fixture = ReactiveCommand.Create(_ => { }); @@ -527,7 +527,7 @@ public void ExecuteViaICommandWorksWithNullableTypes() [Fact] public void InvokeCommandAgainstICommandInTargetInvokesTheCommand() { - int executionCount = 0; + var executionCount = 0; ICommandHolder fixture = new(); Subject source = new(); source.InvokeCommand(fixture, x => x.TheCommand!); @@ -580,7 +580,7 @@ public void InvokeCommandAgainstICommandInNullableTargetPassesTheSpecifiedValueT [Fact] public void InvokeCommandAgainstICommandInTargetRespectsCanExecute() { - bool executed = false; + var executed = false; BehaviorSubject canExecute = new(false); ICommandHolder fixture = new(); Subject source = new(); @@ -601,7 +601,7 @@ public void InvokeCommandAgainstICommandInTargetRespectsCanExecute() [Fact] public void InvokeCommandAgainstICommandInNullableTargetRespectsCanExecute() { - bool executed = false; + var executed = false; BehaviorSubject canExecute = new(false); ICommandHolder? fixture = new(); Subject source = new(); @@ -622,7 +622,7 @@ public void InvokeCommandAgainstICommandInNullableTargetRespectsCanExecute() [Fact] public void InvokeCommandAgainstICommandInTargetRespectsCanExecuteWindow() { - bool executed = false; + var executed = false; BehaviorSubject canExecute = new(false); ICommandHolder fixture = new(); Subject source = new(); @@ -644,7 +644,7 @@ public void InvokeCommandAgainstICommandInTargetRespectsCanExecuteWindow() [Fact] public void InvokeCommandAgainstICommandInTargetSwallowsExceptions() { - int count = 0; + var count = 0; ICommandHolder fixture = new(); ReactiveCommand command = ReactiveCommand.Create( () => @@ -670,7 +670,7 @@ public void InvokeCommandAgainstICommandInTargetSwallowsExceptions() [Fact] public void InvokeCommandAgainstICommandInvokesTheCommand() { - int executionCount = 0; + var executionCount = 0; ICommand fixture = ReactiveCommand.Create(() => ++executionCount, outputScheduler: ImmediateScheduler.Instance); Subject source = new(); source.InvokeCommand(fixture); @@ -688,7 +688,7 @@ public void InvokeCommandAgainstICommandInvokesTheCommand() [Fact] public void InvokeCommandAgainstNullableICommandInvokesTheCommand() { - int executionCount = 0; + var executionCount = 0; ICommand? fixture = ReactiveCommand.Create(() => ++executionCount, outputScheduler: ImmediateScheduler.Instance); Subject source = new(); source.InvokeCommand(fixture); @@ -721,7 +721,7 @@ public void InvokeCommandAgainstICommandPassesTheSpecifiedValueToCanExecuteAndEx [Fact] public void InvokeCommandAgainstICommandRespectsCanExecute() { - bool executed = false; + var executed = false; BehaviorSubject canExecute = new(false); ICommand fixture = ReactiveCommand.Create(() => executed = true, canExecute, ImmediateScheduler.Instance); Subject source = new(); @@ -741,7 +741,7 @@ public void InvokeCommandAgainstICommandRespectsCanExecute() [Fact] public void InvokeCommandAgainstICommandRespectsCanExecuteWindow() { - bool executed = false; + var executed = false; BehaviorSubject canExecute = new(false); ICommand fixture = ReactiveCommand.Create(() => executed = true, canExecute, ImmediateScheduler.Instance); Subject source = new(); @@ -762,7 +762,7 @@ public void InvokeCommandAgainstICommandRespectsCanExecuteWindow() [Fact] public void InvokeCommandAgainstICommandSwallowsExceptions() { - int count = 0; + var count = 0; ReactiveCommand fixture = ReactiveCommand.Create( () => { @@ -786,7 +786,7 @@ public void InvokeCommandAgainstICommandSwallowsExceptions() [Fact] public void InvokeCommandAgainstReactiveCommandInTargetInvokesTheCommand() { - int executionCount = 0; + var executionCount = 0; ReactiveCommandHolder fixture = new(); Subject source = new(); source.InvokeCommand(fixture, x => x.TheCommand!); @@ -805,7 +805,7 @@ public void InvokeCommandAgainstReactiveCommandInTargetInvokesTheCommand() [Fact] public void InvokeCommandAgainstReactiveCommandInTargetPassesTheSpecifiedValueToExecute() { - int executeReceived = 0; + var executeReceived = 0; ReactiveCommandHolder fixture = new(); Subject source = new(); source.InvokeCommand(fixture, x => x.TheCommand!); @@ -821,7 +821,7 @@ public void InvokeCommandAgainstReactiveCommandInTargetPassesTheSpecifiedValueTo [Fact] public void InvokeCommandAgainstReactiveCommandInTargetRespectsCanExecute() { - bool executed = false; + var executed = false; BehaviorSubject canExecute = new(false); ReactiveCommandHolder fixture = new(); Subject source = new(); @@ -842,7 +842,7 @@ public void InvokeCommandAgainstReactiveCommandInTargetRespectsCanExecute() [Fact] public void InvokeCommandAgainstReactiveCommandInTargetRespectsCanExecuteWindow() { - bool executed = false; + var executed = false; BehaviorSubject canExecute = new(false); ReactiveCommandHolder fixture = new(); Subject source = new(); @@ -864,7 +864,7 @@ public void InvokeCommandAgainstReactiveCommandInTargetRespectsCanExecuteWindow( [Fact] public void InvokeCommandAgainstReactiveCommandInTargetSwallowsExceptions() { - int count = 0; + var count = 0; ReactiveCommandHolder fixture = new() { TheCommand = ReactiveCommand.Create( @@ -891,7 +891,7 @@ public void InvokeCommandAgainstReactiveCommandInTargetSwallowsExceptions() [Fact] public void InvokeCommandAgainstReactiveCommandInvokesTheCommand() { - int executionCount = 0; + var executionCount = 0; ReactiveCommand fixture = ReactiveCommand.Create(() => ++executionCount, outputScheduler: ImmediateScheduler.Instance); Subject source = new(); source.InvokeCommand(fixture); @@ -909,7 +909,7 @@ public void InvokeCommandAgainstReactiveCommandInvokesTheCommand() [Fact] public void InvokeCommandAgainstReactiveCommandPassesTheSpecifiedValueToExecute() { - int executeReceived = 0; + var executeReceived = 0; ReactiveCommand fixture = ReactiveCommand.Create(x => executeReceived = x, outputScheduler: ImmediateScheduler.Instance); Subject source = new(); source.InvokeCommand(fixture); @@ -924,7 +924,7 @@ public void InvokeCommandAgainstReactiveCommandPassesTheSpecifiedValueToExecute( [Fact] public void InvokeCommandAgainstReactiveCommandRespectsCanExecute() { - bool executed = false; + var executed = false; BehaviorSubject canExecute = new(false); ReactiveCommand fixture = ReactiveCommand.Create(() => executed = true, canExecute, ImmediateScheduler.Instance); Subject source = new(); @@ -944,7 +944,7 @@ public void InvokeCommandAgainstReactiveCommandRespectsCanExecute() [Fact] public void InvokeCommandAgainstReactiveCommandRespectsCanExecuteWindow() { - bool executed = false; + var executed = false; BehaviorSubject canExecute = new(false); ReactiveCommand fixture = ReactiveCommand.Create(() => executed = true, canExecute, outputScheduler: ImmediateScheduler.Instance); Subject source = new(); @@ -965,7 +965,7 @@ public void InvokeCommandAgainstReactiveCommandRespectsCanExecuteWindow() [Fact] public void InvokeCommandAgainstReactiveCommandSwallowsExceptions() { - int count = 0; + var count = 0; ReactiveCommand fixture = ReactiveCommand.Create( () => { @@ -989,9 +989,9 @@ public void InvokeCommandAgainstReactiveCommandSwallowsExceptions() [Fact] public void InvokeCommandWorksEvenIfTheSourceIsCold() { - int executionCount = 0; + var executionCount = 0; ReactiveCommand fixture = ReactiveCommand.Create(() => ++executionCount, outputScheduler: ImmediateScheduler.Instance); - IObservable source = Observable.Return(Unit.Default); + var source = Observable.Return(Unit.Default); source.InvokeCommand(fixture); Assert.Equal(1, executionCount); @@ -1004,7 +1004,7 @@ public void InvokeCommandWorksEvenIfTheSourceIsCold() public void IsExecutingIsBehavioral() { ReactiveCommand> fixture = ReactiveCommand.Create(() => Observables.Unit, outputScheduler: ImmediateScheduler.Instance); - fixture.IsExecuting.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out ReadOnlyObservableCollection isExecuting).Subscribe(); + fixture.IsExecuting.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var isExecuting).Subscribe(); Assert.Equal(1, isExecuting.Count); Assert.False(isExecuting[0]); @@ -1041,9 +1041,9 @@ public void IsExecutingTicksAsExecutionsProgress() => new TestScheduler().With( scheduler => { - IObservable execute = Observables.Unit.Delay(TimeSpan.FromSeconds(1), scheduler); + var execute = Observables.Unit.Delay(TimeSpan.FromSeconds(1), scheduler); ReactiveCommand fixture = ReactiveCommand.CreateFromObservable(() => execute, outputScheduler: scheduler); - fixture.IsExecuting.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out ReadOnlyObservableCollection isExecuting).Subscribe(); + fixture.IsExecuting.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var isExecuting).Subscribe(); fixture.Execute().Subscribe(); scheduler.AdvanceByMs(100); @@ -1067,7 +1067,7 @@ public void ResultIsTickedThroughSpecifiedScheduler() => scheduler => { ReactiveCommand> fixture = ReactiveCommand.Create(() => Observables.Unit, outputScheduler: scheduler); - fixture.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out ReadOnlyObservableCollection> results).Subscribe(); + fixture.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var results).Subscribe(); fixture.Execute().Subscribe(); Assert.Empty(results); @@ -1082,7 +1082,7 @@ public void ResultIsTickedThroughSpecifiedScheduler() => [Fact] public void SynchronousCommandExecuteLazily() { - int executionCount = 0; + var executionCount = 0; ReactiveCommand fixture1 = ReactiveCommand.Create(() => { ++executionCount; }, outputScheduler: ImmediateScheduler.Instance); ReactiveCommand fixture2 = ReactiveCommand.Create(_ => { ++executionCount; }, outputScheduler: ImmediateScheduler.Instance); ReactiveCommand fixture3 = ReactiveCommand.Create( @@ -1099,10 +1099,10 @@ public void SynchronousCommandExecuteLazily() return 42; }, outputScheduler: ImmediateScheduler.Instance); - IObservable execute1 = fixture1.Execute(); - IObservable execute2 = fixture2.Execute(); - IObservable execute3 = fixture3.Execute(); - IObservable execute4 = fixture4.Execute(); + var execute1 = fixture1.Execute(); + var execute2 = fixture2.Execute(); + var execute3 = fixture3.Execute(); + var execute4 = fixture4.Execute(); Assert.Equal(0, executionCount); @@ -1130,7 +1130,7 @@ public void SynchronousCommandsFailCorrectly() ReactiveCommand fixture3 = ReactiveCommand.Create(() => throw new InvalidOperationException(), outputScheduler: ImmediateScheduler.Instance); ReactiveCommand fixture4 = ReactiveCommand.Create(_ => throw new InvalidOperationException(), outputScheduler: ImmediateScheduler.Instance); - int failureCount = 0; + var failureCount = 0; Observable.Merge(fixture1.ThrownExceptions, fixture2.ThrownExceptions, fixture3.ThrownExceptions, fixture4.ThrownExceptions).Subscribe(_ => ++failureCount); fixture1.Execute().Subscribe(_ => { }, _ => { }); diff --git a/src/ReactiveUI.Tests/InteractionBinding/InteractionBinderImplementationTests.cs b/src/ReactiveUI.Tests/InteractionBinding/InteractionBinderImplementationTests.cs index 26a6fe9153..82c3f51d3e 100644 --- a/src/ReactiveUI.Tests/InteractionBinding/InteractionBinderImplementationTests.cs +++ b/src/ReactiveUI.Tests/InteractionBinding/InteractionBinderImplementationTests.cs @@ -39,7 +39,7 @@ public async Task ReceiveOutputFromTaskHandler() return Task.CompletedTask; }); - bool isDeletionConfirmed = await vm.Interaction1.Handle("123"); + var isDeletionConfirmed = await vm.Interaction1.Handle("123"); isDeletionConfirmed.Should().BeTrue(); } @@ -63,7 +63,7 @@ public async Task ReceiveOutputFromObservableHandler() return Observable.Return(Unit.Default); }); - bool isDeletionConfirmed = await vm.Interaction1.Handle("123"); + var isDeletionConfirmed = await vm.Interaction1.Handle("123"); isDeletionConfirmed.Should().BeTrue(); } @@ -89,7 +89,7 @@ public async Task ReceiveOutputFromTaskHandlerWhenViewModelWasInitiallyNull() view.ViewModel = new InteractionBindViewModel(); - bool isDeletionConfirmed = await view.ViewModel.Interaction1.Handle("123"); + var isDeletionConfirmed = await view.ViewModel.Interaction1.Handle("123"); isDeletionConfirmed.Should().BeTrue(); } @@ -115,7 +115,7 @@ public async Task ReceiveOutputFromObservableHandlerWhenViewModelWasInitiallyNul view.ViewModel = new InteractionBindViewModel(); - bool isDeletionConfirmed = await view.ViewModel.Interaction1.Handle("123"); + var isDeletionConfirmed = await view.ViewModel.Interaction1.Handle("123"); isDeletionConfirmed.Should().BeTrue(); } @@ -233,7 +233,7 @@ public async Task RegisterTaskHandlerToNewlyAssignedViewModel() view.ViewModel = new InteractionBindViewModel(); - bool isDeletionConfirmed = await view.ViewModel.Interaction1.Handle("123"); + var isDeletionConfirmed = await view.ViewModel.Interaction1.Handle("123"); isDeletionConfirmed.Should().BeTrue(); } @@ -259,7 +259,7 @@ public async Task RegisterObservableHandlerToNewlyAssignedViewModel() view.ViewModel = new InteractionBindViewModel(); - bool isDeletionConfirmed = await view.ViewModel.Interaction1.Handle("123"); + var isDeletionConfirmed = await view.ViewModel.Interaction1.Handle("123"); isDeletionConfirmed.Should().BeTrue(); } @@ -283,7 +283,7 @@ public async Task NestedInteractionShouldReceiveOutputFromTaskHandler() return Task.CompletedTask; }); - bool isDeletionConfirmed = await vm.InteractionViewModel.Interaction1.Handle("123"); + var isDeletionConfirmed = await vm.InteractionViewModel.Interaction1.Handle("123"); isDeletionConfirmed.Should().BeTrue(); } @@ -307,7 +307,7 @@ public async Task NestedInteractionShouldReceiveOutputFromObservableHandler() return Observable.Return(Unit.Default); }); - bool isDeletionConfirmed = await vm.InteractionViewModel.Interaction1.Handle("123"); + var isDeletionConfirmed = await vm.InteractionViewModel.Interaction1.Handle("123"); isDeletionConfirmed.Should().BeTrue(); } @@ -384,7 +384,7 @@ public async Task RegisterTaskHandlerToNewlyAssignedNestedViewModel() vm.InteractionViewModel = new InteractionBindViewModel(); - bool isDeletionConfirmed = await vm.InteractionViewModel.Interaction1.Handle("123"); + var isDeletionConfirmed = await vm.InteractionViewModel.Interaction1.Handle("123"); isDeletionConfirmed.Should().BeTrue(); } @@ -413,7 +413,7 @@ public async Task RegisterObservableHandlerToNewlyAssignedNestedViewModel() vm.InteractionViewModel = new InteractionBindViewModel(); - bool isDeletionConfirmed = await vm.InteractionViewModel.Interaction1.Handle("123"); + var isDeletionConfirmed = await vm.InteractionViewModel.Interaction1.Handle("123"); isDeletionConfirmed.Should().BeTrue(); } diff --git a/src/ReactiveUI.Tests/ObservableAsPropertyHelper/ObservableAsPropertyHelperTest.cs b/src/ReactiveUI.Tests/ObservableAsPropertyHelper/ObservableAsPropertyHelperTest.cs index 5a2c79d1e9..b000fbbc15 100644 --- a/src/ReactiveUI.Tests/ObservableAsPropertyHelper/ObservableAsPropertyHelperTest.cs +++ b/src/ReactiveUI.Tests/ObservableAsPropertyHelper/ObservableAsPropertyHelperTest.cs @@ -275,7 +275,7 @@ public void OAPHDeferSubscriptionWithInitialValueEmitInitialValueWhenSubscribed( public void OAPHDeferSubscriptionWithInitialFuncValueEmitInitialValueWhenSubscribed() { var observable = Observable.Empty(); - bool wasAccessed = false; + var wasAccessed = false; Func getInitialValue = () => { wasAccessed = true; diff --git a/src/ReactiveUI.Tests/ObservedChanged/ObservedChangedMixinTest.cs b/src/ReactiveUI.Tests/ObservedChanged/ObservedChangedMixinTest.cs index 48da5d6e23..e8f6d1a995 100644 --- a/src/ReactiveUI.Tests/ObservedChanged/ObservedChangedMixinTest.cs +++ b/src/ReactiveUI.Tests/ObservedChanged/ObservedChangedMixinTest.cs @@ -151,15 +151,15 @@ public void BindToIsNotFooledByIntermediateObjectSwitching() => input.OnNext("Foo"); scheduler.Start(); - Assert.Equal("Foo", fixture.Child.IsNotNullString); + Assert.Equal("Foo", fixture.Child!.IsNotNullString); fixture.Child = new TestFixture(); scheduler.Start(); - Assert.Equal("Foo", fixture.Child.IsNotNullString); + Assert.Equal("Foo", fixture.Child!.IsNotNullString); input.OnNext("Bar"); scheduler.Start(); - Assert.Equal("Bar", fixture.Child.IsNotNullString); + Assert.Equal("Bar", fixture.Child!.IsNotNullString); }); /// diff --git a/src/ReactiveUI.Tests/Platforms/windows-xaml/WhenAnyThroughDependencyObjectTests.cs b/src/ReactiveUI.Tests/Platforms/windows-xaml/WhenAnyThroughDependencyObjectTests.cs index 71a47fa61d..39e05917bf 100644 --- a/src/ReactiveUI.Tests/Platforms/windows-xaml/WhenAnyThroughDependencyObjectTests.cs +++ b/src/ReactiveUI.Tests/Platforms/windows-xaml/WhenAnyThroughDependencyObjectTests.cs @@ -35,7 +35,7 @@ public void WhenAnyThroughAViewShouldntGiveNullValues() }, }; - var fixture = new HostTestView(); + HostTestView? fixture = new(); var output = new List(); diff --git a/src/ReactiveUI.Tests/Platforms/winforms/API/ApiApprovalTests.Winforms.net472.approved.txt b/src/ReactiveUI.Tests/Platforms/winforms/API/ApiApprovalTests.Winforms.net472.approved.txt index 45976e7fb2..8379dd8768 100644 --- a/src/ReactiveUI.Tests/Platforms/winforms/API/ApiApprovalTests.Winforms.net472.approved.txt +++ b/src/ReactiveUI.Tests/Platforms/winforms/API/ApiApprovalTests.Winforms.net472.approved.txt @@ -23,7 +23,7 @@ namespace ReactiveUI.Winforms public class PanelSetMethodBindingConverter : ReactiveUI.ISetMethodBindingConverter, Splat.IEnableLogger { public PanelSetMethodBindingConverter() { } - public int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + public int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } public object PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } } public class PlatformOperations : ReactiveUI.IPlatformOperations @@ -68,7 +68,7 @@ namespace ReactiveUI.Winforms public class TableContentSetMethodBindingConverter : ReactiveUI.ISetMethodBindingConverter, Splat.IEnableLogger { public TableContentSetMethodBindingConverter() { } - public int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + public int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } public object PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } } [System.ComponentModel.DefaultProperty("ViewModel")] diff --git a/src/ReactiveUI.Tests/Platforms/winforms/API/ApiApprovalTests.Winforms.net5.0.approved.txt b/src/ReactiveUI.Tests/Platforms/winforms/API/ApiApprovalTests.Winforms.net5.0.approved.txt index 3b7a5874ca..faef9a0256 100644 --- a/src/ReactiveUI.Tests/Platforms/winforms/API/ApiApprovalTests.Winforms.net5.0.approved.txt +++ b/src/ReactiveUI.Tests/Platforms/winforms/API/ApiApprovalTests.Winforms.net5.0.approved.txt @@ -25,7 +25,7 @@ namespace ReactiveUI.Winforms public class PanelSetMethodBindingConverter : ReactiveUI.ISetMethodBindingConverter, Splat.IEnableLogger { public PanelSetMethodBindingConverter() { } - public int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + public int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } public object PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } } public class PlatformOperations : ReactiveUI.IPlatformOperations @@ -70,7 +70,7 @@ namespace ReactiveUI.Winforms public class TableContentSetMethodBindingConverter : ReactiveUI.ISetMethodBindingConverter, Splat.IEnableLogger { public TableContentSetMethodBindingConverter() { } - public int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + public int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } public object PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } } [System.ComponentModel.DefaultProperty("ViewModel")] diff --git a/src/ReactiveUI.Tests/Platforms/winforms/API/ApiApprovalTests.Winforms.netcoreapp3.1.approved.txt b/src/ReactiveUI.Tests/Platforms/winforms/API/ApiApprovalTests.Winforms.netcoreapp3.1.approved.txt index db75d8a4e5..5448194b7e 100644 --- a/src/ReactiveUI.Tests/Platforms/winforms/API/ApiApprovalTests.Winforms.netcoreapp3.1.approved.txt +++ b/src/ReactiveUI.Tests/Platforms/winforms/API/ApiApprovalTests.Winforms.netcoreapp3.1.approved.txt @@ -23,7 +23,7 @@ namespace ReactiveUI.Winforms public class PanelSetMethodBindingConverter : ReactiveUI.ISetMethodBindingConverter, Splat.IEnableLogger { public PanelSetMethodBindingConverter() { } - public int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + public int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } public object PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } } public class PlatformOperations : ReactiveUI.IPlatformOperations @@ -68,7 +68,7 @@ namespace ReactiveUI.Winforms public class TableContentSetMethodBindingConverter : ReactiveUI.ISetMethodBindingConverter, Splat.IEnableLogger { public TableContentSetMethodBindingConverter() { } - public int GetAffinityForObjects(System.Type fromType, System.Type toType) { } + public int GetAffinityForObjects(System.Type? fromType, System.Type? toType) { } public object PerformSet(object? toTarget, object? newValue, object?[]? arguments) { } } [System.ComponentModel.DefaultProperty("ViewModel")] diff --git a/src/ReactiveUI.Tests/ReactiveObject/ReactiveObjectTests.cs b/src/ReactiveUI.Tests/ReactiveObject/ReactiveObjectTests.cs index 379888c03a..938c565adf 100644 --- a/src/ReactiveUI.Tests/ReactiveObject/ReactiveObjectTests.cs +++ b/src/ReactiveUI.Tests/ReactiveObject/ReactiveObjectTests.cs @@ -205,7 +205,7 @@ public void ReactiveObjectShouldntSerializeAnythingExtra() IsNotNullString = "Foo", IsOnlyOneWord = "Baz" }; - string? json = JSONHelper.Serialize(fixture); + var json = JSONHelper.Serialize(fixture); if (json is null) { diff --git a/src/ReactiveUI.Tests/Resolvers/DependencyResolverTests.cs b/src/ReactiveUI.Tests/Resolvers/DependencyResolverTests.cs index 0faefdbf54..f73771caa1 100644 --- a/src/ReactiveUI.Tests/Resolvers/DependencyResolverTests.cs +++ b/src/ReactiveUI.Tests/Resolvers/DependencyResolverTests.cs @@ -56,9 +56,9 @@ public void AllDefaultServicesShouldBeRegistered() { foreach (var shouldRegistered in GetServicesThatShouldBeRegistered(PlatformRegistrationManager.DefaultRegistrationNamespaces)) { - IEnumerable resolvedServices = resolver.GetServices(shouldRegistered.Key); + var resolvedServices = resolver.GetServices(shouldRegistered.Key); Assert.Equal(shouldRegistered.Value.Count, resolvedServices.Count()); - foreach (Type implementationType in shouldRegistered.Value) + foreach (var implementationType in shouldRegistered.Value) { resolvedServices .Any(rs => rs.GetType() == implementationType) @@ -83,9 +83,9 @@ public void AllDefaultServicesShouldBeRegisteredPerRegistrationNamespace(IEnumer foreach (var shouldRegistered in registeredService) { - IEnumerable resolvedServices = resolver.GetServices(shouldRegistered.Key); + var resolvedServices = resolver.GetServices(shouldRegistered.Key); - foreach (Type implementationType in shouldRegistered.Value) + foreach (var implementationType in shouldRegistered.Value) { resolvedServices .Any(rs => rs.GetType() == implementationType) @@ -109,7 +109,7 @@ public void RegisteredNamespacesShouldBeRegistered(IEnumerable resolvedServices = resolver.GetServices(shouldRegistered.Key); + var resolvedServices = resolver.GetServices(shouldRegistered.Key); resolvedServices .Select(x => x.GetType()?.AssemblyQualifiedName ?? string.Empty) diff --git a/src/ReactiveUI.Tests/Resolvers/PocoObservableForPropertyTests.cs b/src/ReactiveUI.Tests/Resolvers/PocoObservableForPropertyTests.cs index 839cd794e6..312f6cc095 100644 --- a/src/ReactiveUI.Tests/Resolvers/PocoObservableForPropertyTests.cs +++ b/src/ReactiveUI.Tests/Resolvers/PocoObservableForPropertyTests.cs @@ -41,7 +41,7 @@ public void NotificationPocoErrorOnBind() } // Run test twice and verify that POCO message is logged only once. - for (int i = 0; i < 2; i++) + for (var i = 0; i < 2; i++) { using (var testLoggerRegistration = new TestLoggerRegistration(_testLoggerForNotificationPocoErrorOnBind)) { diff --git a/src/ReactiveUI.Tests/Utilities/ApiApprovalBase.cs b/src/ReactiveUI.Tests/Utilities/ApiApprovalBase.cs index 256163244c..08ae4ff50e 100644 --- a/src/ReactiveUI.Tests/Utilities/ApiApprovalBase.cs +++ b/src/ReactiveUI.Tests/Utilities/ApiApprovalBase.cs @@ -41,7 +41,7 @@ protected static void CheckApproval(Assembly assembly, [CallerMemberName]string? var approvedFileName = Path.Combine(sourceDirectory, $"ApiApprovalTests.{memberName}.{targetFrameworkName}.approved.txt"); var receivedFileName = Path.Combine(sourceDirectory, $"ApiApprovalTests.{memberName}.{targetFrameworkName}.received.txt"); - string approvedPublicApi = string.Empty; + var approvedPublicApi = string.Empty; if (File.Exists(approvedFileName)) { @@ -76,7 +76,7 @@ protected static void CheckApproval(Assembly assembly, [CallerMemberName]string? process.StartInfo.FileName = "diff"; #endif process.Start(); - string output = process.StandardOutput.ReadToEnd(); + var output = process.StandardOutput.ReadToEnd(); process.WaitForExit(); throw new Exception("Invalid API configuration: " + Environment.NewLine + output); diff --git a/src/ReactiveUI.Tests/WhenAny/ReactiveNotifyPropertyChangedMixinTest.cs b/src/ReactiveUI.Tests/WhenAny/ReactiveNotifyPropertyChangedMixinTest.cs index 3723b2c6c1..bf412e1af5 100644 --- a/src/ReactiveUI.Tests/WhenAny/ReactiveNotifyPropertyChangedMixinTest.cs +++ b/src/ReactiveUI.Tests/WhenAny/ReactiveNotifyPropertyChangedMixinTest.cs @@ -35,7 +35,7 @@ public class ReactiveNotifyPropertyChangedMixinTest [Fact] public void AnyChangeInExpressionListTriggersUpdate() { - var obj = new ObjChain1(); + ObjChain1? obj = new(); bool obsUpdated; obj.ObservableForProperty(x => x.Model.Model.Model.SomeOtherParam).Subscribe(_ => obsUpdated = true); @@ -101,12 +101,7 @@ public void MultiPropertyExpressionsShouldBeProperlyResolved() { var propertyName = y.GetMemberInfo()?.Name; - if (propertyName is null) - { - throw new InvalidOperationException("propertyName should not be null."); - } - - return propertyName; + return propertyName ?? throw new InvalidOperationException("propertyName should not be null."); })); } @@ -120,7 +115,7 @@ public void MultiPropertyExpressionsShouldBeProperlyResolved() public void OFPChangingTheHostPropertyShouldFireAChildChangeNotificationOnlyIfThePreviousChildIsDifferent() => new TestScheduler().With(scheduler => { - var fixture = new HostTestFixture + HostTestFixture? fixture = new() { Child = new TestFixture() }; @@ -180,7 +175,7 @@ public void OFPNamedPropertyTest() => public void OFPNamedPropertyTestBeforeChange() => new TestScheduler().With(scheduler => { - var fixture = new TestFixture + TestFixture? fixture = new() { IsOnlyOneWord = "Pre" }; @@ -209,7 +204,7 @@ public void OFPNamedPropertyTestBeforeChange() => public void OFPNamedPropertyTestNoSkipInitial() => new TestScheduler().With(scheduler => { - var fixture = new TestFixture + TestFixture? fixture = new() { IsOnlyOneWord = "Pre" }; @@ -234,7 +229,7 @@ public void OFPNamedPropertyTestNoSkipInitial() => public void OFPNamedPropertyTestRepeats() => new TestScheduler().With(scheduler => { - var fixture = new TestFixture(); + TestFixture? fixture = new(); fixture.ObservableForProperty(x => x.IsOnlyOneWord) .ToObservableChangeSet(ImmediateScheduler.Instance) .Bind(out var changes) @@ -265,7 +260,7 @@ public void OFPNamedPropertyTestRepeats() => public void OFPReplacingTheHostShouldResubscribeTheObservable() => new TestScheduler().With(scheduler => { - var fixture = new HostTestFixture + HostTestFixture? fixture = new() { Child = new TestFixture() }; @@ -310,7 +305,7 @@ public void OFPReplacingTheHostShouldResubscribeTheObservable() => public void OFPReplacingTheHostWithNullThenSettingItBackShouldResubscribeTheObservable() => new TestScheduler().With(scheduler => { - var fixture = new HostTestFixture + HostTestFixture? fixture = new() { Child = new TestFixture() }; @@ -350,7 +345,7 @@ public void OFPReplacingTheHostWithNullThenSettingItBackShouldResubscribeTheObse public void OFPShouldWorkWithINPCObjectsToo() => new TestScheduler().With(scheduler => { - var fixture = new NonReactiveINPCObject + NonReactiveINPCObject? fixture = new() { InpcProperty = null! }; @@ -376,7 +371,7 @@ public void OFPShouldWorkWithINPCObjectsToo() => public void OFPSimpleChildPropertyTest() => new TestScheduler().With(scheduler => { - var fixture = new HostTestFixture + HostTestFixture? fixture = new() { Child = new TestFixture() }; @@ -410,7 +405,7 @@ public void OFPSimpleChildPropertyTest() => public void OFPSimplePropertyTest() => new TestScheduler().With(scheduler => { - var fixture = new TestFixture(); + TestFixture? fixture = new(); fixture.ObservableForProperty(x => x.IsOnlyOneWord) .ToObservableChangeSet(ImmediateScheduler.Instance) .Bind(out var changes) @@ -440,7 +435,7 @@ public void OFPSimplePropertyTest() => [Fact] public void SubscriptionToWhenAnyShouldReturnCurrentValue() { - var obj = new HostTestFixture(); + HostTestFixture? obj = new(); var observedValue = 1; obj.WhenAnyValue(x => x.SomeOtherParam).Subscribe(x => observedValue = x); @@ -455,7 +450,7 @@ public void WhenAnyShouldRunInContext() var tid = Thread.CurrentThread.ManagedThreadId; TaskPoolScheduler.Default.With( - scheduler => + _ => { var whenAnyTid = 0; var fixture = new TestFixture @@ -465,7 +460,7 @@ public void WhenAnyShouldRunInContext() PocoProperty = "Bamf" }; - fixture.WhenAnyValue(x => x.IsNotNullString).Subscribe(x => { whenAnyTid = Thread.CurrentThread.ManagedThreadId; }); + fixture.WhenAnyValue(x => x.IsNotNullString).Subscribe(__ => whenAnyTid = Thread.CurrentThread.ManagedThreadId); var timeout = 10; fixture.IsNotNullString = "Bar"; @@ -488,28 +483,28 @@ public void WhenAnyShouldWorkEvenWithNormalProperties() PocoProperty = "Bamf" }; - var output = new List>(); + var output = new List?>(); fixture.WhenAny(x => x.PocoProperty, x => x).Subscribe(output.Add); var output2 = new List(); fixture.WhenAnyValue(x => x.PocoProperty).Subscribe(output2.Add); - var output3 = new List>(); + var output3 = new List?>(); fixture.WhenAny(x => x.NullableInt, x => x).Subscribe(output3.Add); var output4 = new List(); fixture.WhenAnyValue(x => x.NullableInt).Subscribe(output4.Add); Assert.Equal(1, output.Count); - Assert.Equal(fixture, output[0].Sender); - Assert.Equal("PocoProperty", output[0].GetPropertyName()); - Assert.Equal("Bamf", output[0].Value); + Assert.Equal(fixture, output[0]!.Sender); + Assert.Equal("PocoProperty", output[0]!.GetPropertyName()); + Assert.Equal("Bamf", output[0]!.Value); Assert.Equal(1, output2.Count); Assert.Equal("Bamf", output2[0]); Assert.Equal(1, output3.Count); - Assert.Equal(fixture, output3[0].Sender); - Assert.Equal("NullableInt", output3[0].GetPropertyName()); - Assert.Equal(null, output3[0].Value); + Assert.Equal(fixture, output3[0]!.Sender); + Assert.Equal("NullableInt", output3[0]!.GetPropertyName()); + Assert.Equal(null, output3[0]!.Value); Assert.Equal(1, output4.Count); Assert.Equal(null, output4[0]); @@ -584,7 +579,7 @@ public void WhenAnySmokeTest() => new TestScheduler().With( scheduler => { - var fixture = new HostTestFixture + HostTestFixture? fixture = new() { Child = new TestFixture() }; @@ -603,7 +598,7 @@ public void WhenAnySmokeTest() => }).Subscribe( x => { - output1.Add(x.sop); + output1.Add(x!.sop); output2.Add(x.nns!); }); @@ -660,7 +655,7 @@ public void WhenAnyValueSmokeTest() => new TestScheduler().With( scheduler => { - var fixture = new HostTestFixture + HostTestFixture? fixture = new() { Child = new TestFixture() }; @@ -679,7 +674,7 @@ public void WhenAnyValueSmokeTest() => }).Subscribe( x => { - output1.Add(x.sop); + output1.Add(x!.sop); output2.Add(x.nns!); }); @@ -764,7 +759,7 @@ public void WhenAnyValueUnsupportedExpressionType_Constant() { var fixture = new TestFixture(); var exception = Assert.Throws( - () => fixture.WhenAnyValue(x => Dummy).Subscribe()); + () => fixture.WhenAnyValue(_ => Dummy).Subscribe()); Assert.Equal("Unsupported expression of type 'Constant'. Did you miss the member access prefix in the expression?", exception.Message); } diff --git a/src/ReactiveUI.Tests/WhenAny/WhenAnyObservableTests.cs b/src/ReactiveUI.Tests/WhenAny/WhenAnyObservableTests.cs index 7d34626ce0..3eaca76138 100644 --- a/src/ReactiveUI.Tests/WhenAny/WhenAnyObservableTests.cs +++ b/src/ReactiveUI.Tests/WhenAny/WhenAnyObservableTests.cs @@ -27,11 +27,10 @@ public class WhenAnyObservableTests [Fact] public void NullObservablesDoNotCauseExceptions() { - var fixture = new TestWhenAnyObsViewModel(); + TestWhenAnyObsViewModel? fixture = new(); fixture.Command1 = null; // these are the overloads of WhenAnyObservable that perform a Merge -#pragma warning disable CS8603 // Possible null reference return. fixture.WhenAnyObservable(x => x.Command1).Subscribe(); fixture.WhenAnyObservable(x => x.Command1, x => x.Command1).Subscribe(); fixture.WhenAnyObservable(x => x.Command1, x => x.Command1, x => x.Command1).Subscribe(); @@ -45,6 +44,7 @@ public void NullObservablesDoNotCauseExceptions() fixture.WhenAnyObservable(x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1).Subscribe(); // these are the overloads of WhenAnyObservable that perform a CombineLatest +#pragma warning disable RCS1163 // Unused parameter. fixture.WhenAnyObservable(x => x.Command1, x => x.Command1, (zero, one) => Unit.Default).Subscribe(); fixture.WhenAnyObservable(x => x.Command1, x => x.Command1, x => x.Command1, (zero, one, two) => Unit.Default).Subscribe(); fixture.WhenAnyObservable(x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, (zero, one, two, three) => Unit.Default).Subscribe(); @@ -55,7 +55,7 @@ public void NullObservablesDoNotCauseExceptions() fixture.WhenAnyObservable(x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, (zero, one, two, three, four, five, six, seven, eight) => Unit.Default).Subscribe(); fixture.WhenAnyObservable(x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, (zero, one, two, three, four, five, six, seven, eight, nine) => Unit.Default).Subscribe(); fixture.WhenAnyObservable(x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, x => x.Command1, (zero, one, two, three, four, five, six, seven, eight, nine, ten) => Unit.Default).Subscribe(); -#pragma warning restore CS8603 // Possible null reference return. +#pragma warning restore RCS1163 // Unused parameter. } /// @@ -65,13 +65,10 @@ public void NullObservablesDoNotCauseExceptions() [Fact] public async Task WhenAnyObservableSmokeTestCombining() { - var fixture = new TestWhenAnyObsViewModel(); + TestWhenAnyObsViewModel? fixture = new(); - var list = new List(); -#pragma warning disable CS8603 // Possible null reference return. + var list = new List(); fixture.WhenAnyObservable(x => x.Command3, x => x.Command1, (s, i) => s + " : " + i).ObserveOn(ImmediateScheduler.Instance).Subscribe(list.Add); -#pragma warning restore CS8603 // Possible null reference return. - Assert.Equal(0, list.Count); await fixture.Command1!.Execute(1); @@ -101,13 +98,10 @@ public async Task WhenAnyObservableSmokeTestCombining() [Fact] public async Task WhenAnyObservableSmokeTestMerging() { - var fixture = new TestWhenAnyObsViewModel(); + TestWhenAnyObsViewModel fixture = new(); var list = new List(); -#pragma warning disable CS8603 // Possible null reference return. fixture.WhenAnyObservable(x => x.Command1, x => x.Command2).ObserveOn(ImmediateScheduler.Instance).Subscribe(list.Add); -#pragma warning restore CS8603 // Possible null reference return. - Assert.Equal(0, list.Count); await fixture.Command1!.Execute(1); @@ -135,11 +129,8 @@ public async Task WhenAnyObservableSmokeTestMerging() [Fact] public void WhenAnyObservableWithNullObjectShouldUpdateWhenObjectIsntNullAnymore() { - var fixture = new TestWhenAnyObsViewModel(); -#pragma warning disable CS8603 // Possible null reference return. - fixture.WhenAnyObservable(x => x.Changes).Bind(out var output).ObserveOn(ImmediateScheduler.Instance).Subscribe(); -#pragma warning restore CS8603 // Possible null reference return. - + TestWhenAnyObsViewModel? fixture = new(); + fixture!.WhenAnyObservable(x => x.Changes)!.Bind(out var output).ObserveOn(ImmediateScheduler.Instance).Subscribe(); Assert.Equal(0, output.Count); fixture.MyListOfInts = new ObservableCollectionExtended(); diff --git a/src/ReactiveUI.Winforms/ActivationForViewFetcher.cs b/src/ReactiveUI.Winforms/ActivationForViewFetcher.cs index 360b83c8d0..cccb4aabc1 100644 --- a/src/ReactiveUI.Winforms/ActivationForViewFetcher.cs +++ b/src/ReactiveUI.Winforms/ActivationForViewFetcher.cs @@ -93,7 +93,7 @@ public IObservable GetActivationForView(IActivatableView view) private static bool GetIsDesignMode(Control control) { - bool isDesignMode = LicenseManager.UsageMode == LicenseUsageMode.Designtime || control.Site?.DesignMode == true || control.Parent?.Site?.DesignMode == true; + var isDesignMode = LicenseManager.UsageMode == LicenseUsageMode.Designtime || control.Site?.DesignMode == true || control.Parent?.Site?.DesignMode == true; return isDesignMode; } diff --git a/src/ReactiveUI.Winforms/CreatesWinformsCommandBinding.cs b/src/ReactiveUI.Winforms/CreatesWinformsCommandBinding.cs index d403d3cdbb..d71a7d8b8a 100644 --- a/src/ReactiveUI.Winforms/CreatesWinformsCommandBinding.cs +++ b/src/ReactiveUI.Winforms/CreatesWinformsCommandBinding.cs @@ -30,7 +30,7 @@ public class CreatesWinformsCommandBinding : ICreatesCommandBinding /// public int GetAffinityForObject(Type type, bool hasEventTarget) { - bool isWinformControl = typeof(Control).IsAssignableFrom(type); + var isWinformControl = typeof(Control).IsAssignableFrom(type); if (isWinformControl) { @@ -91,7 +91,7 @@ public IDisposable BindCommandToObject(ICommand command, object targ var ret = new CompositeDisposable(); object? latestParameter = null; - Type targetType = target.GetType(); + var targetType = target.GetType(); ret.Add(commandParameter.Subscribe(x => latestParameter = x)); diff --git a/src/ReactiveUI.Winforms/ObservableCollectionChangedToListChangedTransformer.cs b/src/ReactiveUI.Winforms/ObservableCollectionChangedToListChangedTransformer.cs index f2ba182727..f988ccc53c 100644 --- a/src/ReactiveUI.Winforms/ObservableCollectionChangedToListChangedTransformer.cs +++ b/src/ReactiveUI.Winforms/ObservableCollectionChangedToListChangedTransformer.cs @@ -31,7 +31,7 @@ internal static IEnumerable AsListChangedEventArgs(this No case NotifyCollectionChangedAction.Remove when ea.OldItems is not null: { - foreach (int index in Enumerable.Range(ea.OldStartingIndex, ea.OldItems.Count)) + foreach (var index in Enumerable.Range(ea.OldStartingIndex, ea.OldItems.Count)) { yield return new ListChangedEventArgs(ListChangedType.ItemDeleted, index); } @@ -41,7 +41,7 @@ internal static IEnumerable AsListChangedEventArgs(this No case NotifyCollectionChangedAction.Add when ea.NewItems is not null: { - foreach (int index in Enumerable.Range(ea.NewStartingIndex, ea.NewItems.Count)) + foreach (var index in Enumerable.Range(ea.NewStartingIndex, ea.NewItems.Count)) { yield return new ListChangedEventArgs(ListChangedType.ItemAdded, index); } diff --git a/src/ReactiveUI.Winforms/PanelSetMethodBindingConverter.cs b/src/ReactiveUI.Winforms/PanelSetMethodBindingConverter.cs index 6809807781..f0f4e270a1 100644 --- a/src/ReactiveUI.Winforms/PanelSetMethodBindingConverter.cs +++ b/src/ReactiveUI.Winforms/PanelSetMethodBindingConverter.cs @@ -16,14 +16,16 @@ namespace ReactiveUI.Winforms public class PanelSetMethodBindingConverter : ISetMethodBindingConverter { /// - public int GetAffinityForObjects(Type fromType, Type toType) + public int GetAffinityForObjects(Type? fromType, Type? toType) { if (toType != typeof(Control.ControlCollection)) { return 0; } - if (fromType?.GetInterfaces().Any(x => x.IsGenericType && x.GetGenericTypeDefinition() == typeof(IEnumerable<>) && x.GetGenericArguments().First().IsSubclassOf(typeof(Control))) ?? false) +#pragma warning disable IDE0046 // Convert to conditional expression + if (fromType?.GetInterfaces().Any(x => x.IsGenericType && x.GetGenericTypeDefinition() == typeof(IEnumerable<>) && x.GetGenericArguments()[0].IsSubclassOf(typeof(Control))) ?? false) +#pragma warning restore IDE0046 // Convert to conditional expression { return 10; } @@ -39,7 +41,7 @@ public object PerformSet(object? toTarget, object? newValue, object?[]? argument throw new ArgumentNullException(nameof(toTarget)); } - if (!(newValue is IEnumerable newValueEnumerable)) + if (newValue is not IEnumerable newValueEnumerable) { throw new ArgumentException($"newValue must be {nameof(newValue)}", nameof(newValue)); } diff --git a/src/ReactiveUI.Winforms/RoutedViewHost.cs b/src/ReactiveUI.Winforms/RoutedViewHost.cs index d49a6ba2c4..f8f3d0a32e 100644 --- a/src/ReactiveUI.Winforms/RoutedViewHost.cs +++ b/src/ReactiveUI.Winforms/RoutedViewHost.cs @@ -71,7 +71,7 @@ public RoutedControlHost() return; } - IViewLocator viewLocator = ViewLocator ?? ReactiveUI.ViewLocator.Current; + var viewLocator = ViewLocator ?? ReactiveUI.ViewLocator.Current; var view = viewLocator.ResolveView(x.ViewModel, x.Contract); if (view is not null) { diff --git a/src/ReactiveUI.Winforms/TableContentSetMethodBindingConverter.cs b/src/ReactiveUI.Winforms/TableContentSetMethodBindingConverter.cs index 7789f8fb50..a23652d03f 100644 --- a/src/ReactiveUI.Winforms/TableContentSetMethodBindingConverter.cs +++ b/src/ReactiveUI.Winforms/TableContentSetMethodBindingConverter.cs @@ -16,23 +16,14 @@ namespace ReactiveUI.Winforms public class TableContentSetMethodBindingConverter : ISetMethodBindingConverter { /// - public int GetAffinityForObjects(Type fromType, Type toType) - { - if (toType != typeof(TableLayoutControlCollection)) - { - return 0; - } - - if (fromType?.GetInterfaces().Any(x => x.IsGenericType && x.GetGenericTypeDefinition() == typeof(IEnumerable<>) && x.GetGenericArguments().First().IsSubclassOf(typeof(Control))) ?? false) - { - return 15; - } - - return 0; - } + public int GetAffinityForObjects(Type? fromType, Type? toType) => + toType != typeof(TableLayoutControlCollection) + ? 0 + : fromType?.GetInterfaces().Any(x => x.IsGenericType && x.GetGenericTypeDefinition() == typeof(IEnumerable<>) && x.GetGenericArguments()[0].IsSubclassOf(typeof(Control))) ?? false + ? 15 + : 0; /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1011:Closing square brackets should be spaced correctly", Justification = "Valid syntax.")] public object PerformSet(object? toTarget, object? newValue, object?[]? arguments) { if (toTarget is null) @@ -40,12 +31,12 @@ public object PerformSet(object? toTarget, object? newValue, object?[]? argument throw new ArgumentNullException(nameof(toTarget)); } - if (!(toTarget is TableLayoutControlCollection targetCollection)) + if (toTarget is not TableLayoutControlCollection targetCollection) { throw new ArgumentException($"{nameof(toTarget)} must be of type {nameof(TableLayoutControlCollection)}", nameof(toTarget)); } - if (!(newValue is IEnumerable newValueEnumerable)) + if (newValue is not IEnumerable newValueEnumerable) { throw new ArgumentException($"newValue must be {nameof(newValue)}", nameof(newValue)); } diff --git a/src/ReactiveUI.Winforms/ViewModelViewHost.cs b/src/ReactiveUI.Winforms/ViewModelViewHost.cs index eaee85ac60..30b3dd1f9e 100644 --- a/src/ReactiveUI.Winforms/ViewModelViewHost.cs +++ b/src/ReactiveUI.Winforms/ViewModelViewHost.cs @@ -217,8 +217,8 @@ private IEnumerable SetupBindings() } } - IViewLocator viewLocator = ViewLocator ?? ReactiveUI.ViewLocator.Current; - IViewFor? view = viewLocator.ResolveView(x.ViewModel, x.Contract); + var viewLocator = ViewLocator ?? ReactiveUI.ViewLocator.Current; + var view = viewLocator.ResolveView(x.ViewModel, x.Contract); if (view != null) { view.ViewModel = x.ViewModel; diff --git a/src/ReactiveUI.Winforms/WinformsCreatesObservableForProperty.cs b/src/ReactiveUI.Winforms/WinformsCreatesObservableForProperty.cs index e178812b69..18a59eabde 100644 --- a/src/ReactiveUI.Winforms/WinformsCreatesObservableForProperty.cs +++ b/src/ReactiveUI.Winforms/WinformsCreatesObservableForProperty.cs @@ -30,7 +30,7 @@ public class WinformsCreatesObservableForProperty : ICreatesObservableForPropert /// public int GetAffinityForObject(Type type, string propertyName, bool beforeChanged = false) { - bool supportsTypeBinding = typeof(Component).IsAssignableFrom(type); + var supportsTypeBinding = typeof(Component).IsAssignableFrom(type); if (!supportsTypeBinding) { return 0; @@ -57,7 +57,7 @@ public int GetAffinityForObject(Type type, string propertyName, bool beforeChang return Observable.Create>(subj => { - bool completed = false; + var completed = false; var handler = new EventHandler((o, e) => { if (completed) diff --git a/src/ReactiveUI.Wpf/TransitioningContentControl.cs b/src/ReactiveUI.Wpf/TransitioningContentControl.cs index 2614fe9d49..e6ddf2502f 100644 --- a/src/ReactiveUI.Wpf/TransitioningContentControl.cs +++ b/src/ReactiveUI.Wpf/TransitioningContentControl.cs @@ -303,7 +303,7 @@ private void QueueTransition(object newContent) // Wire up the first transition to start the second transition when it's complete. startingTransitionName = $"Transition_{Transition}{Direction}Out"; - Storyboard transitionOut = GetTransitionStoryboardByName(startingTransitionName); + var transitionOut = GetTransitionStoryboardByName(startingTransitionName); transitionOut.Completed += (_, _) => VisualStateManager.GoToState( this, diff --git a/src/ReactiveUI.XamForms/RoutedViewHost.cs b/src/ReactiveUI.XamForms/RoutedViewHost.cs index 98a9e1f535..a8e9e6ae20 100644 --- a/src/ReactiveUI.XamForms/RoutedViewHost.cs +++ b/src/ReactiveUI.XamForms/RoutedViewHost.cs @@ -40,9 +40,9 @@ public RoutedViewHost() { this.WhenActivated(disposable => { - bool currentlyPopping = false; - bool popToRootPending = false; - bool userInstigated = false; + var currentlyPopping = false; + var popToRootPending = false; + var userInstigated = false; this.WhenAnyObservable(x => x.Router.NavigationChanged) .Where(_ => Router.NavigationStack.Count == 0) @@ -116,7 +116,7 @@ public RoutedViewHost() .SelectMany(_ => PageForViewModel(Router.GetCurrentViewModel())) .SelectMany(async page => { - bool animated = true; + var animated = true; var attribute = page.GetType().GetCustomAttribute(); if (attribute is not null) { @@ -184,9 +184,7 @@ public RoutedViewHost() Router = screen.Router; this.WhenAnyValue(x => x.Router) - .SelectMany(router => - { - return router.NavigationStack + .SelectMany(router => router!.NavigationStack .ToObservable() .Select(x => (Page)ViewLocator.Current.ResolveView(x)!) .SelectMany(x => PushAsync(x).ToObservable()) @@ -200,8 +198,7 @@ public RoutedViewHost() ((IViewFor)CurrentPage).ViewModel = vm; CurrentPage.Title = vm.UrlPathSegment; - }); - }) + })) .Subscribe(); } diff --git a/src/ReactiveUI/Activation/ViewForMixins.cs b/src/ReactiveUI/Activation/ViewForMixins.cs index 7d16e05b27..5fc10de5e1 100644 --- a/src/ReactiveUI/Activation/ViewForMixins.cs +++ b/src/ReactiveUI/Activation/ViewForMixins.cs @@ -25,7 +25,7 @@ public static class ViewForMixins .GetServices() .Aggregate((count: 0, viewFetcher: default(IActivationForViewFetcher?)), (acc, x) => { - int score = x?.GetAffinityForView(t) ?? 0; + var score = x?.GetAffinityForView(t) ?? 0; return score > acc.count ? (score, x) : acc; }).viewFetcher, RxApp.SmallCacheLimit); diff --git a/src/ReactiveUI/Bindings/Command/CommandBinderImplementation.cs b/src/ReactiveUI/Bindings/Command/CommandBinderImplementation.cs index 29535c2430..f4a8c21250 100644 --- a/src/ReactiveUI/Bindings/Command/CommandBinderImplementation.cs +++ b/src/ReactiveUI/Bindings/Command/CommandBinderImplementation.cs @@ -62,7 +62,7 @@ public IReactiveBinding BindCommand(); - IDisposable bindingDisposable = BindCommandInternal(source, view, controlExpression, Observable.Defer(() => Observable.Return(withParameter())), toEvent ?? string.Empty, cmd => + var bindingDisposable = BindCommandInternal(source, view, controlExpression, Observable.Defer(() => Observable.Return(withParameter())), toEvent ?? string.Empty, cmd => { if (!(cmd is IReactiveCommand rc)) { @@ -127,7 +127,7 @@ public IReactiveBinding BindCommand(); - IDisposable bindingDisposable = BindCommandInternal(source, view, controlExpression, withParameter, toEvent); + var bindingDisposable = BindCommandInternal(source, view, controlExpression, withParameter, toEvent); return new ReactiveBinding( view, @@ -148,7 +148,7 @@ private static IDisposable BindCommandInternal( where TView : class, IViewFor where TProp : ICommand { - IDisposable disposable = Disposable.Empty; + var disposable = Disposable.Empty; var bindInfo = source.CombineLatest( view.SubscribeToExpressionChain(controlExpression, false, false, RxApp.SuppressViewCommandBindingMessage).Select(x => x.Value), diff --git a/src/ReactiveUI/Bindings/Command/CreatesCommandBinding.cs b/src/ReactiveUI/Bindings/Command/CreatesCommandBinding.cs index 1ca7325fc8..725010b51e 100644 --- a/src/ReactiveUI/Bindings/Command/CreatesCommandBinding.cs +++ b/src/ReactiveUI/Bindings/Command/CreatesCommandBinding.cs @@ -22,7 +22,7 @@ internal class CreatesCommandBinding return Locator.Current.GetServices() .Aggregate((score: 0, binding: (ICreatesCommandBinding?)null), (acc, x) => { - int score = x.GetAffinityForObject(t, false); + var score = x.GetAffinityForObject(t, false); return (score > acc.score) ? (score, x) : acc; }).binding; }, RxApp.SmallCacheLimit); @@ -34,7 +34,7 @@ internal class CreatesCommandBinding return Locator.Current.GetServices() .Aggregate((score: 0, binding: (ICreatesCommandBinding?)null), (acc, x) => { - int score = x.GetAffinityForObject(t, true); + var score = x.GetAffinityForObject(t, true); return (score > acc.score) ? (score, x) : acc; }).binding; }, RxApp.SmallCacheLimit); diff --git a/src/ReactiveUI/Bindings/ISetMethodBindingConverter.cs b/src/ReactiveUI/Bindings/ISetMethodBindingConverter.cs index c7f69709b7..0b7c9ebdde 100644 --- a/src/ReactiveUI/Bindings/ISetMethodBindingConverter.cs +++ b/src/ReactiveUI/Bindings/ISetMethodBindingConverter.cs @@ -24,7 +24,7 @@ public interface ISetMethodBindingConverter : IEnableLogger /// The target type to convert to. /// A positive integer if PerformSet is supported, /// zero or a negative value otherwise. - int GetAffinityForObjects(Type fromType, Type toType); + int GetAffinityForObjects(Type? fromType, Type? toType); /// /// Convert a given object to the specified type. diff --git a/src/ReactiveUI/Bindings/Property/IPropertyBinderImplementation.cs b/src/ReactiveUI/Bindings/Property/IPropertyBinderImplementation.cs index d130b27c7b..346d054ea4 100644 --- a/src/ReactiveUI/Bindings/Property/IPropertyBinderImplementation.cs +++ b/src/ReactiveUI/Bindings/Property/IPropertyBinderImplementation.cs @@ -224,8 +224,8 @@ IReactiveBinding OneWayBind( /// /// BindTo takes an Observable stream and applies it to a target - /// property. Conceptually it is similar to Subscribe(x => - /// target.property = x), but allows you to use child properties + /// property. Conceptually it is similar to. Subscribe(x => + /// target.property = x), but allows you to use child properties /// without the null checks. /// /// The value type. diff --git a/src/ReactiveUI/Bindings/Property/PropertyBinderImplementation.cs b/src/ReactiveUI/Bindings/Property/PropertyBinderImplementation.cs index eda407f2cf..162d265cfc 100644 --- a/src/ReactiveUI/Bindings/Property/PropertyBinderImplementation.cs +++ b/src/ReactiveUI/Bindings/Property/PropertyBinderImplementation.cs @@ -20,37 +20,27 @@ namespace ReactiveUI /// /// Provides methods to bind properties to observables. /// - [SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1011:Closing square brackets should be spaced correctly", Justification = "nullable object array.")] public class PropertyBinderImplementation : IPropertyBinderImplementation { private static readonly MemoizingMRUCache<(Type fromType, Type toType), IBindingTypeConverter?> _typeConverterCache = new( - (types, _) => - { - return Locator.Current.GetServices() + (types, _) => Locator.Current.GetServices() .Aggregate((currentAffinity: -1, currentBinding: default(IBindingTypeConverter)), (acc, x) => { var score = x?.GetAffinityForObjects(types.fromType, types.toType) ?? -1; return score > acc.currentAffinity && score > 0 ? (score, x) : acc; - }).currentBinding; - }, + }).currentBinding, RxApp.SmallCacheLimit); - private static readonly MemoizingMRUCache<(Type fromType, Type toType), ISetMethodBindingConverter?> _setMethodCache = new( - (type, _) => - { - return Locator.Current.GetServices() + private static readonly MemoizingMRUCache<(Type? fromType, Type? toType), ISetMethodBindingConverter?> _setMethodCache = new( + (type, _) => Locator.Current.GetServices() .Aggregate((currentAffinity: -1, currentBinding: default(ISetMethodBindingConverter)), (acc, x) => { var score = x.GetAffinityForObjects(type.fromType, type.toType); return score > acc.currentAffinity && score > 0 ? (score, x) : acc; - }).currentBinding; - }, + }).currentBinding, RxApp.SmallCacheLimit); - static PropertyBinderImplementation() - { - RxApp.EnsureInitialized(); - } + static PropertyBinderImplementation() => RxApp.EnsureInitialized(); private delegate bool OutFunc(T1 t1, out T2 t2); @@ -78,7 +68,7 @@ static PropertyBinderImplementation() bool VmToViewFunc(TVMProp? vmValue, out TVProp vValue) { - var result = vmToViewConverter.TryConvert(vmValue, typeof(TVProp), conversionHint, out object? tmp); + var result = vmToViewConverter.TryConvert(vmValue, typeof(TVProp), conversionHint, out var tmp); vValue = result && tmp != null ? (TVProp)tmp : default!; return result; @@ -86,7 +76,7 @@ bool VmToViewFunc(TVMProp? vmValue, out TVProp vValue) bool ViewToVmFunc(TVProp vValue, out TVMProp? vmValue) { - var result = viewToVMConverter.TryConvert(vValue, typeof(TVMProp?), conversionHint, out object? tmp); + var result = viewToVMConverter.TryConvert(vValue, typeof(TVMProp?), conversionHint, out var tmp); vmValue = result && tmp != null ? (TVMProp?)tmp : default; return result; @@ -180,15 +170,7 @@ public IReactiveBinding OneWayBind - { - if (!converter.TryConvert(x, viewType, conversionHint, out object? tmp)) - { - return Observable.Empty; - } - - return Observable.Return(tmp); - }); + .SelectMany(x => !converter.TryConvert(x, viewType, conversionHint, out var tmp) ? Observable.Empty : Observable.Return(tmp)); var (disposable, obs) = BindToDirect(source, view, viewExpression); @@ -264,27 +246,17 @@ public IDisposable BindTo( throw new ArgumentException($"Can't convert {typeof(TValue)} to {typeof(TTValue)}. To fix this, register a IBindingTypeConverter"); } - var source = observedChange.SelectMany(x => - { - if (!converter.TryConvert(x, typeof(TTValue?), conversionHint, out var tmp)) - { - return Observable.Empty; - } - - return Observable.Return(tmp); - }); + var source = observedChange.SelectMany(x => !converter.TryConvert(x, typeof(TTValue?), conversionHint, out var tmp) ? Observable.Empty : Observable.Return(tmp)); var (disposable, _) = BindToDirect(source, target, viewExpression); return disposable; } - internal static IBindingTypeConverter? GetConverterForTypes(Type lhs, Type rhs) - { - return _typeConverterCache.Get((lhs, rhs)); - } + internal static IBindingTypeConverter? GetConverterForTypes(Type lhs, Type rhs) => + _typeConverterCache.Get((lhs, rhs)); - private static Func? GetSetConverter(Type? fromType, Type targetType) + private static Func? GetSetConverter(Type? fromType, Type? targetType) { if (fromType == null) { @@ -293,12 +265,7 @@ public IDisposable BindTo( var setter = _setMethodCache.Get((fromType, targetType)); - if (setter == null) - { - return null; - } - - return setter.PerformSet; + return setter == null ? null : setter.PerformSet; } private (IDisposable disposable, IObservable value) BindToDirect( @@ -310,7 +277,7 @@ public IDisposable BindTo( var defaultSetter = Reflection.GetValueSetterOrThrow(viewExpression.GetMemberInfo()); var defaultGetter = Reflection.GetValueFetcherOrThrow(viewExpression.GetMemberInfo()); - object? SetThenGet(object paramTarget, object? paramValue, object?[]? paramParams) + object? SetThenGet(object? paramTarget, object? paramValue, object?[]? paramParams) { var converter = GetSetConverter(paramValue?.GetType(), viewExpression.Type); @@ -345,14 +312,7 @@ public IDisposable BindTo( { var value = SetThenGet(x.host, x.val, viewExpression.GetArgumentsArray()); - if (value == null) - { -#pragma warning disable CS8603 // Possible null reference return. - return default; -#pragma warning restore CS8603 // Possible null reference return. - } - - return (TValue)value; + return value == null ? default : (TValue)value; })!; } @@ -369,22 +329,16 @@ private bool EvalBindingHooks(TViewModel? viewModel, TView vi throw new ArgumentNullException(nameof(view)); } - Func[]> vmFetcher; - if (vmExpression != null) - { - vmFetcher = () => + Func[]> vmFetcher = vmExpression != null + ? (() => { Reflection.TryGetAllValuesForPropertyChain(out var fetchedValues, viewModel, vmExpression.GetExpressionChain()); return fetchedValues; - }; - } - else - { - vmFetcher = () => new IObservedChange[] + }) + : (() => new IObservedChange[] { new ObservedChange(null!, null!, viewModel) - }; - } + }); var vFetcher = new Func[]>(() => { @@ -413,8 +367,8 @@ private bool EvalBindingHooks(TViewModel? viewModel, TView vi IObservable? signalViewUpdate, OutFunc vmToViewConverter, OutFunc viewToVmConverter) - where TView : class, IViewFor where TViewModel : class + where TView : class, IViewFor { if (vmProperty == null) { @@ -432,7 +386,7 @@ private bool EvalBindingHooks(TViewModel? viewModel, TView vi var signalObservable = signalViewUpdate != null ? signalViewUpdate.Select(_ => false) - : view.WhenAnyDynamic(viewExpression, x => (TVProp)x.Value).Select(_ => false); + : view.WhenAnyDynamic(viewExpression, x => (TVProp?)x.Value).Select(_ => false); var somethingChanged = Observable.Merge( Reflection.ViewModelWhenAnyValue(viewModel, view, vmExpression).Select(_ => true), @@ -440,30 +394,16 @@ private bool EvalBindingHooks(TViewModel? viewModel, TView vi signalObservable); var changeWithValues = somethingChanged.Select(isVm => - { - if (!Reflection.TryGetValueForPropertyChain(out TVMProp vmValue, view.ViewModel, vmExpression.GetExpressionChain()) || - !Reflection.TryGetValueForPropertyChain(out TVProp vValue, view, viewExpression.GetExpressionChain())) - { - return (false, null, false); - } - - if (isVm) - { - if (!vmToViewConverter(vmValue, out TVProp vmAsView) || EqualityComparer.Default.Equals(vValue, vmAsView)) - { - return (false, null, false); - } - - return (true, vmAsView, isVm); - } - - if (!viewToVmConverter(vValue, out TVMProp? vAsViewModel) || EqualityComparer.Default.Equals(vmValue, vAsViewModel)) - { - return (false, null, false); - } - - return (true, vAsViewModel, isVm); - }); + !Reflection.TryGetValueForPropertyChain(out TVMProp vmValue, view.ViewModel, vmExpression.GetExpressionChain()) || + !Reflection.TryGetValueForPropertyChain(out TVProp vValue, view, viewExpression.GetExpressionChain()) + ? (false, null, false) + : isVm + ? !vmToViewConverter(vmValue, out var vmAsView) || EqualityComparer.Default.Equals(vValue, vmAsView) + ? (false, null, false) + : (true, vmAsView, isVm) + : !viewToVmConverter(vValue, out var vAsViewModel) || EqualityComparer.Default.Equals(vmValue, vAsViewModel) + ? (false, null, false) + : (true, vAsViewModel, isVm)); var ret = EvalBindingHooks(viewModel, view, vmExpression, viewExpression, BindingDirection.TwoWay); if (!ret) @@ -471,13 +411,13 @@ private bool EvalBindingHooks(TViewModel? viewModel, TView vi return null!; } - IObservable<(object? view, bool isViewModel)> changes = changeWithValues + var changes = changeWithValues .Where(value => value.isValid) .Select(value => (value.view, value.isViewModel)) .Publish() .RefCount(); - IDisposable disposable = changes.Subscribe(isVmWithLatestValue => + var disposable = changes.Subscribe(isVmWithLatestValue => { if (isVmWithLatestValue.isViewModel) { diff --git a/src/ReactiveUI/Bindings/Property/PropertyBindingMixins.cs b/src/ReactiveUI/Bindings/Property/PropertyBindingMixins.cs index 86a58059e0..ac5ec1a067 100644 --- a/src/ReactiveUI/Bindings/Property/PropertyBindingMixins.cs +++ b/src/ReactiveUI/Bindings/Property/PropertyBindingMixins.cs @@ -33,12 +33,12 @@ static PropertyBindingMixins() /// The instance of the view model to bind. /// /// An expression indicating the property that is bound on the view model. - /// This can be a chain of properties of the form. vm => vm.Foo.Bar.Baz + /// This can be a chain of properties of the form. vm => vm.Foo.Bar.Baz /// and the binder will attempt to subscribe to changes on each recursively. /// /// /// The property on the view that is to be bound. - /// This can be a chain of properties of the form. view => view.Foo.Bar.Baz + /// This can be a chain of properties of the form. view => view.Foo.Bar.Baz /// and the binder will attempt to set the last one each time the view model property is updated. /// /// @@ -93,12 +93,12 @@ static PropertyBindingMixins() /// The instance of the view model to bind. /// /// An expression indicating the property that is bound on the view model. - /// This can be a chain of properties of the form. vm => vm.Foo.Bar.Baz + /// This can be a chain of properties of the form. vm => vm.Foo.Bar.Baz /// and the binder will attempt to subscribe to changes on each recursively. /// /// /// The property on the view that is to be bound. - /// This can be a chain of properties of the form. view => view.Foo.Bar.Baz + /// This can be a chain of properties of the form. view => view.Foo.Bar.Baz /// and the binder will attempt to set the last one each time the view model property is updated. /// /// @@ -146,12 +146,12 @@ static PropertyBindingMixins() /// The instance of the view model to bind. /// /// An expression indicating the property that is bound on the view model. - /// This can be a chain of properties of the form. vm => vm.Foo.Bar.Baz + /// This can be a chain of properties of the form. vm => vm.Foo.Bar.Baz /// and the binder will attempt to subscribe to changes on each recursively. /// /// /// The property on the view that is to be bound. - /// This can be a chain of properties of the form. view => view.Foo.Bar.Baz + /// This can be a chain of properties of the form. view => view.Foo.Bar.Baz /// and the binder will attempt to set the last one each time the view model property is updated. /// /// @@ -191,12 +191,12 @@ static PropertyBindingMixins() /// The instance of the view model to bind. /// /// An expression indicating the property that is bound on the view model. - /// This can be a chain of properties of the form. vm => vm.Foo.Bar.Baz + /// This can be a chain of properties of the form. vm => vm.Foo.Bar.Baz /// and the binder will attempt to subscribe to changes on each recursively. /// /// /// The property on the view that is to be bound. - /// This can be a chain of properties of the form. view => view.Foo.Bar.Baz + /// This can be a chain of properties of the form. view => view.Foo.Bar.Baz /// and the binder will attempt to set the last one each time the view model property is updated. /// /// @@ -236,7 +236,7 @@ static PropertyBindingMixins() /// The type of view model property. /// The type of the property bound on the view. /// - /// The instance of the view object which is bound. Usually, it is the. this + /// The instance of the view object which is bound. Usually, it is the. this /// instance. /// /// @@ -244,12 +244,12 @@ static PropertyBindingMixins() /// It is usually set to the property of the . /// /// An expression indicating the property that is bound on the view model. - /// This can be a chain of properties of the form. vm => vm.Foo.Bar.Baz + /// This can be a chain of properties of the form. vm => vm.Foo.Bar.Baz /// and the binder will attempt to subscribe to changes on each recursively. /// /// /// The property on the view that is to be bound. - /// This can be a chain of properties of the form. view => view.Foo.Bar.Baz + /// This can be a chain of properties of the form. view => view.Foo.Bar.Baz /// and the binder will attempt to set the last one each time the view model property is updated. /// /// @@ -323,8 +323,8 @@ public static IReactiveBinding OneWayBind /// BindTo takes an Observable stream and applies it to a target - /// property. Conceptually it is similar to Subscribe(x => - /// target.property = x), but allows you to use child properties + /// property. Conceptually it is similar to. Subscribe(x => + /// target.property = x), but allows you to use child properties /// without the null checks. /// /// The source type. diff --git a/src/ReactiveUI/Comparers/ChainedComparer.cs b/src/ReactiveUI/Comparers/ChainedComparer.cs index c295bc0394..42e6788f27 100644 --- a/src/ReactiveUI/Comparers/ChainedComparer.cs +++ b/src/ReactiveUI/Comparers/ChainedComparer.cs @@ -24,7 +24,7 @@ public ChainedComparer(IComparer? parent, Comparison comparison) public int Compare(T x, T y) #pragma warning restore CS8767 // Nullability of reference types in type of parameter doesn't match implicitly implemented member (possibly because of nullability attributes). { - int parentResult = _parent?.Compare(x, y) ?? 0; + var parentResult = _parent?.Compare(x, y) ?? 0; if (x is null && y is null) { diff --git a/src/ReactiveUI/Expression/ExpressionRewriter.cs b/src/ReactiveUI/Expression/ExpressionRewriter.cs index 37e9c2d4e9..2eceda0c7a 100644 --- a/src/ReactiveUI/Expression/ExpressionRewriter.cs +++ b/src/ReactiveUI/Expression/ExpressionRewriter.cs @@ -66,8 +66,8 @@ protected override Expression VisitBinary(BinaryExpression node) throw new NotSupportedException("Array index expressions are only supported with constants."); } - Expression left = Visit(node.Left); - Expression right = Visit(node.Right); + var left = Visit(node.Left); + var right = Visit(node.Right); // Translate arrayindex into normal index expression return Expression.MakeIndex(left, left.Type.GetRuntimeProperty("Item"), new[] { right }); @@ -77,7 +77,7 @@ protected override Expression VisitUnary(UnaryExpression node) { if (node.NodeType == ExpressionType.ArrayLength && node.Operand is not null) { - Expression expression = Visit(node.Operand); + var expression = Visit(node.Operand); var memberInfo = expression.Type.GetRuntimeProperty("Length"); @@ -116,7 +116,7 @@ protected override Expression VisitMethodCall(MethodCallExpression node) throw new ArgumentException("The Method call does not point towards an object.", nameof(node)); } - Expression instance = Visit(node.Object); + var instance = Visit(node.Object); IEnumerable arguments = Visit(node.Arguments); // Translate call to get_Item into normal index expression diff --git a/src/ReactiveUI/Expression/Reflection.cs b/src/ReactiveUI/Expression/Reflection.cs index a81ce8c6d6..f4d2b893bd 100644 --- a/src/ReactiveUI/Expression/Reflection.cs +++ b/src/ReactiveUI/Expression/Reflection.cs @@ -20,19 +20,16 @@ namespace ReactiveUI /// /// Helper class for handling Reflection amd Expression tree related items. /// - [SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1011:Closing square brackets should be spaced correctly", Justification = "nullable object array.")] public static class Reflection { - private static readonly ExpressionRewriter expressionRewriter = new ExpressionRewriter(); + private static readonly ExpressionRewriter _expressionRewriter = new(); - private static readonly MemoizingMRUCache _typeCache = new MemoizingMRUCache( - (type, _) => - { - return Type.GetType( + private static readonly MemoizingMRUCache _typeCache = new( + (type, _) => Type.GetType( type, assemblyName => { - var assembly = AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(z => z.FullName == assemblyName.FullName); + var assembly = Array.Find(AppDomain.CurrentDomain.GetAssemblies(), z => z.FullName == assemblyName.FullName); if (assembly != null) { return assembly; @@ -48,8 +45,7 @@ public static class Reflection } }, null, - false); - }, + false), 20); /// @@ -57,10 +53,7 @@ public static class Reflection /// /// The expression to rewrite. /// The rewritten expression. - public static Expression Rewrite(Expression expression) - { - return expressionRewriter.Visit(expression); - } + public static Expression Rewrite(Expression? expression) => _expressionRewriter.Visit(expression); /// /// Will convert a Expression which points towards a property @@ -70,7 +63,7 @@ public static Expression Rewrite(Expression expression) /// /// The expression to generate the property names from. /// A string form for the property the expression is pointing to. - public static string ExpressionToPropertyNames(Expression expression) + public static string ExpressionToPropertyNames(Expression? expression) { if (expression == null) { @@ -79,7 +72,7 @@ public static string ExpressionToPropertyNames(Expression expression) StringBuilder sb = new StringBuilder(); - foreach (Expression exp in expression.GetExpressionChain()) + foreach (var exp in expression.GetExpressionChain()) { if (exp.NodeType != ExpressionType.Parameter) { @@ -118,26 +111,21 @@ public static string ExpressionToPropertyNames(Expression expression) /// /// The member info to convert. /// A Func that takes in the object/indexes and returns the value. - public static Func? GetValueFetcherForProperty(MemberInfo? member) + public static Func? GetValueFetcherForProperty(MemberInfo? member) { if (member is null) { throw new ArgumentNullException(nameof(member)); } - FieldInfo? field = member as FieldInfo; + var field = member as FieldInfo; if (field != null) { return (obj, _) => field.GetValue(obj) ?? throw new InvalidOperationException(); } - PropertyInfo? property = member as PropertyInfo; - if (property != null) - { - return property.GetValue; - } - - return null; + var property = member as PropertyInfo; + return property!.GetValue; } /// @@ -148,7 +136,7 @@ public static string ExpressionToPropertyNames(Expression expression) /// /// The member info to convert. /// A Func that takes in the object/indexes and returns the value. - public static Func GetValueFetcherOrThrow(MemberInfo? member) + public static Func GetValueFetcherOrThrow(MemberInfo? member) { if (member is null) { @@ -157,12 +145,7 @@ public static string ExpressionToPropertyNames(Expression expression) var ret = GetValueFetcherForProperty(member); - if (ret == null) - { - throw new ArgumentException($"Type '{member.DeclaringType}' must have a property '{member.Name}'"); - } - - return ret; + return ret ?? throw new ArgumentException($"Type '{member.DeclaringType}' must have a property '{member.Name}'"); } /// @@ -173,7 +156,7 @@ public static string ExpressionToPropertyNames(Expression expression) /// /// The member info to convert. /// A Func that takes in the object/indexes and sets the value. - public static Action GetValueSetterForProperty(MemberInfo? member) + public static Action GetValueSetterForProperty(MemberInfo? member) { if (member is null) { @@ -187,12 +170,7 @@ public static string ExpressionToPropertyNames(Expression expression) } PropertyInfo? property = member as PropertyInfo; - if (property != null) - { - return property.SetValue; - } - - return null!; + return property!.SetValue; } /// @@ -203,7 +181,7 @@ public static string ExpressionToPropertyNames(Expression expression) /// /// The member info to convert. /// A Func that takes in the object/indexes and sets the value. - public static Action? GetValueSetterOrThrow(MemberInfo? member) + public static Action? GetValueSetterOrThrow(MemberInfo? member) { if (member is null) { @@ -212,12 +190,7 @@ public static string ExpressionToPropertyNames(Expression expression) var ret = GetValueSetterForProperty(member); - if (ret == null) - { - throw new ArgumentException($"Type '{member.DeclaringType}' must have a property '{member.Name}'"); - } - - return ret; + return ret ?? throw new ArgumentException($"Type '{member.DeclaringType}' must have a property '{member.Name}'"); } /// @@ -234,7 +207,7 @@ public static string ExpressionToPropertyNames(Expression expression) public static bool TryGetValueForPropertyChain(out TValue changeValue, object? current, IEnumerable expressionChain) { var expressions = expressionChain.ToList(); - foreach (Expression expression in expressions.SkipLast(1)) + foreach (var expression in expressions.SkipLast(1)) { if (current == null) { @@ -251,12 +224,8 @@ public static bool TryGetValueForPropertyChain(out TValue changeValue, o return false; } - Expression lastExpression = expressions.Last(); -#pragma warning disable CS8601 // Possible null reference assignment. -#pragma warning disable CS8605 // Unboxing a possibly null value. + var lastExpression = expressions.Last(); changeValue = (TValue)GetValueFetcherOrThrow(lastExpression.GetMemberInfo())(current, lastExpression.GetArgumentsArray())!; -#pragma warning restore CS8605 // Unboxing a possibly null value. -#pragma warning restore CS8601 // Possible null reference assignment. return true; } @@ -273,11 +242,11 @@ public static bool TryGetValueForPropertyChain(out TValue changeValue, o /// If the value was successfully retrieved or not. public static bool TryGetAllValuesForPropertyChain(out IObservedChange[] changeValues, object? current, IEnumerable expressionChain) { - int currentIndex = 0; + var currentIndex = 0; var expressions = expressionChain.ToList(); changeValues = new IObservedChange[expressions.Count]; - foreach (Expression expression in expressions.SkipLast(1)) + foreach (var expression in expressions.SkipLast(1)) { if (current == null) { @@ -287,9 +256,7 @@ public static bool TryGetAllValuesForPropertyChain(out IObservedChange(sender, expression, current); -#pragma warning restore CS8604 // Possible null reference argument. currentIndex++; } @@ -299,11 +266,8 @@ public static bool TryGetAllValuesForPropertyChain(out IObservedChange(current, lastExpression, GetValueFetcherOrThrow(lastExpression.GetMemberInfo())(current, lastExpression.GetArgumentsArray())); -#pragma warning restore CS8604 // Possible null reference argument. - return true; } @@ -323,7 +287,7 @@ public static bool TryGetAllValuesForPropertyChain(out IObservedChange(object? target, IEnumerable expressionChain, TValue value, bool shouldThrow = true) { var expressions = expressionChain.ToList(); - foreach (Expression expression in expressions.SkipLast(1)) + foreach (var expression in expressions.SkipLast(1)) { var getter = shouldThrow ? GetValueFetcherOrThrow(expression.GetMemberInfo()) : @@ -340,8 +304,8 @@ public static bool TrySetValueToPropertyChain(object? target, IEnumerabl return false; } - Expression lastExpression = expressions.Last(); - Action? setter = shouldThrow ? + var lastExpression = expressions.Last(); + var setter = shouldThrow ? GetValueSetterOrThrow(lastExpression.GetMemberInfo()) : GetValueSetterForProperty(lastExpression.GetMemberInfo()); @@ -364,13 +328,8 @@ public static bool TrySetValueToPropertyChain(object? target, IEnumerabl /// If we were unable to find the type. public static Type? ReallyFindType(string? type, bool throwOnFailure) { - Type? ret = _typeCache.Get(type ?? string.Empty); - if (ret != null || !throwOnFailure) - { - return ret; - } - - throw new TypeLoadException(); + var ret = _typeCache.Get(type ?? string.Empty); + return ret != null || !throwOnFailure ? ret : throw new TypeLoadException(); } /// @@ -387,8 +346,8 @@ public static Type GetEventArgsTypeForEvent(Type type, string eventName) throw new ArgumentNullException(nameof(type)); } - Type ti = type; - EventInfo? ei = ti.GetRuntimeEvent(eventName); + var ti = type; + var ei = ti.GetRuntimeEvent(eventName); if (ei == null || ei.EventHandlerType == null) { throw new Exception($"Couldn't find {type.FullName}.{eventName}"); @@ -408,17 +367,17 @@ public static Type GetEventArgsTypeForEvent(Type type, string eventName) /// Thrown if the methods aren't overriden on the target object. public static void ThrowIfMethodsNotOverloaded(string callingTypeName, object targetObject, params string[] methodsToCheck) { - var missingMethod = methodsToCheck + var (methodName, methodImplementation) = methodsToCheck .Select(x => { - IEnumerable methods = targetObject.GetType().GetTypeInfo().DeclaredMethods; + var methods = targetObject.GetType().GetTypeInfo().DeclaredMethods; return (methodName: x, methodImplementation: methods.FirstOrDefault(y => y.Name == x)); }) .FirstOrDefault(x => x.methodImplementation == null); - if (missingMethod.methodName != default) + if (methodName != default) { - throw new Exception($"Your class must implement {missingMethod.methodName} and call {callingTypeName}.{missingMethod.methodName}"); + throw new Exception($"Your class must implement {methodName} and call {callingTypeName}.{methodName}"); } } @@ -438,15 +397,16 @@ public static bool IsStatic(this PropertyInfo item) return method.IsStatic; } - [SuppressMessage("Microsoft.Performance", "CA1801", Justification = "TViewModel used to help generic calling.")] - internal static IObservable ViewModelWhenAnyValue(TViewModel? viewModel, TView view, Expression expression) +#pragma warning disable IDE0060 // Remove unused parameter +#pragma warning disable RCS1163 // Unused parameter. + internal static IObservable ViewModelWhenAnyValue(TViewModel? viewModel, TView view, Expression? expression) +#pragma warning restore RCS1163 // Unused parameter. +#pragma warning restore IDE0060 // Remove unused parameter where TView : class, IViewFor - where TViewModel : class - { - return view.WhenAnyValue(x => x.ViewModel) - .Where(x => x != null) - .Select(x => ((TViewModel)x!).WhenAnyDynamic(expression, y => y.Value)) - .Switch(); - } + where TViewModel : class => + view.WhenAnyValue(x => x.ViewModel) + .Where(x => x != null) + .Select(x => ((TViewModel?)x).WhenAnyDynamic(expression, y => y.Value)) + .Switch()!; } } diff --git a/src/ReactiveUI/Interfaces/IObservedChange.cs b/src/ReactiveUI/Interfaces/IObservedChange.cs index 35339bf588..23ce14290b 100644 --- a/src/ReactiveUI/Interfaces/IObservedChange.cs +++ b/src/ReactiveUI/Interfaces/IObservedChange.cs @@ -24,7 +24,7 @@ public interface IObservedChange /// /// Gets the expression of the member that has changed on Sender. /// - Expression Expression { get; } + Expression? Expression { get; } /// /// Gets the value of the property that has changed. IMPORTANT NOTE: This diff --git a/src/ReactiveUI/Interfaces/ObservedChange.cs b/src/ReactiveUI/Interfaces/ObservedChange.cs index e5ef249f16..3d89b2f99e 100644 --- a/src/ReactiveUI/Interfaces/ObservedChange.cs +++ b/src/ReactiveUI/Interfaces/ObservedChange.cs @@ -20,7 +20,7 @@ public class ObservedChange : IObservedChange /// The sender. /// Expression describing the member. /// The value. - public ObservedChange(TSender sender, Expression expression, TValue value) + public ObservedChange(TSender sender, Expression? expression, TValue value) { Sender = sender; Expression = expression; @@ -31,7 +31,7 @@ public ObservedChange(TSender sender, Expression expression, TValue value) public TSender Sender { get; } /// - public Expression Expression { get; } + public Expression? Expression { get; } /// public TValue Value { get; } diff --git a/src/ReactiveUI/Mixins/AutoPersistHelper.cs b/src/ReactiveUI/Mixins/AutoPersistHelper.cs index 69e0bbd0e5..96a62c7007 100644 --- a/src/ReactiveUI/Mixins/AutoPersistHelper.cs +++ b/src/ReactiveUI/Mixins/AutoPersistHelper.cs @@ -94,7 +94,7 @@ public static IDisposable AutoPersist(this T @this, Func persistableProperties = persistablePropertiesCache.Get(@this.GetType()); + var persistableProperties = persistablePropertiesCache.Get(@this.GetType()); var saveHint = @this.GetChangedObservable().Where(x => x.PropertyName is not null && persistableProperties.ContainsKey(x.PropertyName)).Select(_ => Unit.Default).Merge(manualSaveSignal.Select(_ => Unit.Default)); diff --git a/src/ReactiveUI/Mixins/ExpressionMixins.cs b/src/ReactiveUI/Mixins/ExpressionMixins.cs index ae43a4f737..f3741d6895 100644 --- a/src/ReactiveUI/Mixins/ExpressionMixins.cs +++ b/src/ReactiveUI/Mixins/ExpressionMixins.cs @@ -27,7 +27,7 @@ public static class ExpressionMixins public static IEnumerable GetExpressionChain(this Expression expression) { var expressions = new List(); - Expression? node = expression; + var node = expression; while (node is not null && node.NodeType != ExpressionType.Parameter) { diff --git a/src/ReactiveUI/Mixins/ObservedChangedMixin.cs b/src/ReactiveUI/Mixins/ObservedChangedMixin.cs index 72d4e906b4..127608c277 100644 --- a/src/ReactiveUI/Mixins/ObservedChangedMixin.cs +++ b/src/ReactiveUI/Mixins/ObservedChangedMixin.cs @@ -23,15 +23,10 @@ public static class ObservedChangedMixin /// /// The name of the property which has changed. /// - public static string GetPropertyName(this IObservedChange item) - { - if (item is null) - { - throw new ArgumentNullException(nameof(item)); - } - - return Reflection.ExpressionToPropertyNames(item.Expression); - } + public static string GetPropertyName(this IObservedChange item) => + item is null + ? throw new ArgumentNullException(nameof(item)) + : Reflection.ExpressionToPropertyNames(item.Expression); /// /// Returns the current value of a property given a notification that @@ -45,20 +40,12 @@ public static string GetPropertyName(this IObservedChange /// The current value of the property. /// - public static TValue GetValue(this IObservedChange item) - { - if (item is null) - { - throw new ArgumentNullException(nameof(item)); - } - - if (!item.TryGetValue(out var returnValue)) - { - throw new Exception($"One of the properties in the expression '{item.GetPropertyName()}' was null"); - } - - return returnValue; - } + public static TValue GetValue(this IObservedChange item) => + item is null + ? throw new ArgumentNullException(nameof(item)) + : !item.TryGetValue(out var returnValue) + ? throw new Exception($"One of the properties in the expression '{item.GetPropertyName()}' was null") + : returnValue; /// /// Returns the current value of a property given a notification that @@ -72,20 +59,8 @@ public static TValue GetValue(this IObservedChange /// The current value of the property. /// - public static TValue? GetValueOrDefault(this IObservedChange item) - { - if (item is null) - { - throw new ArgumentNullException(nameof(item)); - } - - if (!item.TryGetValue(out var returnValue)) - { - return default; - } - - return returnValue; - } + public static TValue? GetValueOrDefault(this IObservedChange item) => + item is null ? throw new ArgumentNullException(nameof(item)) : !item.TryGetValue(out var returnValue) ? default : returnValue; /// /// Given a stream of notification changes, this method will convert @@ -128,7 +103,7 @@ internal static bool TryGetValue(this IObservedChange diff --git a/src/ReactiveUI/Mixins/ReactiveNotifyPropertyChangedMixin.cs b/src/ReactiveUI/Mixins/ReactiveNotifyPropertyChangedMixin.cs index aa12e14933..12612bd3fb 100644 --- a/src/ReactiveUI/Mixins/ReactiveNotifyPropertyChangedMixin.cs +++ b/src/ReactiveUI/Mixins/ReactiveNotifyPropertyChangedMixin.cs @@ -25,7 +25,7 @@ public static class ReactiveNotifyPropertyChangedMixin return Locator.Current.GetServices() .Aggregate((score: 0, binding: (ICreatesObservableForProperty?)null), (acc, x) => { - int score = x.GetAffinityForObject(t.senderType, t.propertyName, t.beforeChange); + var score = x.GetAffinityForObject(t.senderType, t.propertyName, t.beforeChange); return score > acc.score ? (score, x) : acc; }).binding; }, RxApp.BigCacheLimit); @@ -50,9 +50,9 @@ public static class ReactiveNotifyPropertyChangedMixin /// with the initial value. /// An Observable representing the property change /// notifications for the given property. - public static IObservable> ObservableForProperty( - this TSender item, - Expression> property, + public static IObservable> ObservableForProperty( + this TSender? item, + Expression> property, bool beforeChange = false, bool skipInitial = true) { @@ -81,7 +81,7 @@ public static IObservable> ObservableForPropert * Resubscribe to new Baz, publish to Subject */ - return SubscribeToExpressionChain( + return SubscribeToExpressionChain( item, property.Body, beforeChange, @@ -107,9 +107,9 @@ public static IObservable> ObservableForPropert /// An Observable representing the property change /// notifications for the given property. public static IObservable ObservableForProperty( - this TSender item, - Expression> property, - Func selector, + this TSender? item, + Expression> property, + Func selector, bool beforeChange = false) where TSender : class { @@ -136,8 +136,8 @@ public static IObservable ObservableForProperty( /// A observable which notifies about observed changes. /// If we cannot cast from the target value from the specified last property. public static IObservable> SubscribeToExpressionChain( - this TSender source, - Expression expression, + this TSender? source, + Expression? expression, bool beforeChange = false, bool skipInitial = true, bool suppressWarnings = false) @@ -150,7 +150,7 @@ public static IObservable> SubscribeToExpressio IObservable> notifier = Observable.Return(new ObservedChange(null, null!, source)); - IEnumerable chain = Reflection.Rewrite(expression).GetExpressionChain(); + var chain = Reflection.Rewrite(expression).GetExpressionChain(); notifier = chain.Aggregate(notifier, (n, expr) => n .Select(y => NestedObservedChanges(expr, y, beforeChange, suppressWarnings)) .Switch()); diff --git a/src/ReactiveUI/ObservableForProperty/OAPHCreationHelperMixin.cs b/src/ReactiveUI/ObservableForProperty/OAPHCreationHelperMixin.cs index ccd95847a4..f18c168869 100644 --- a/src/ReactiveUI/ObservableForProperty/OAPHCreationHelperMixin.cs +++ b/src/ReactiveUI/ObservableForProperty/OAPHCreationHelperMixin.cs @@ -643,7 +643,7 @@ private static ObservableAsPropertyHelper ObservableToProperty throw new ArgumentNullException(nameof(property)); } - Expression expression = Reflection.Rewrite(property.Body); + var expression = Reflection.Rewrite(property.Body); var parent = expression.GetParent(); @@ -664,7 +664,7 @@ private static ObservableAsPropertyHelper ObservableToProperty throw new ArgumentException("The property expression does not point towards a valid member.", nameof(property)); } - string name = memberInfo.Name; + var name = memberInfo.Name; if (expression is IndexExpression) { name += "[]"; @@ -702,7 +702,7 @@ private static ObservableAsPropertyHelper ObservableToProperty throw new ArgumentNullException(nameof(property)); } - Expression expression = Reflection.Rewrite(property.Body); + var expression = Reflection.Rewrite(property.Body); var parent = expression.GetParent(); @@ -723,7 +723,7 @@ private static ObservableAsPropertyHelper ObservableToProperty throw new ArgumentException("The property expression does not point towards a valid member.", nameof(property)); } - string name = memberInfo.Name; + var name = memberInfo.Name; if (expression is IndexExpression) { name += "[]"; diff --git a/src/ReactiveUI/Platforms/android/AndroidCommandBinders.cs b/src/ReactiveUI/Platforms/android/AndroidCommandBinders.cs index 8a9d631f71..02a7872b81 100644 --- a/src/ReactiveUI/Platforms/android/AndroidCommandBinders.cs +++ b/src/ReactiveUI/Platforms/android/AndroidCommandBinders.cs @@ -21,7 +21,7 @@ public class AndroidCommandBinders : FlexibleCommandBinder /// public AndroidCommandBinders() { - Type view = typeof(View); + var view = typeof(View); Register(view, 9, (cmd, t, cp) => ForEvent(cmd, t, cp, "Click", view.GetRuntimeProperty("Enabled"))); } diff --git a/src/ReactiveUI/Platforms/android/HandlerScheduler.cs b/src/ReactiveUI/Platforms/android/HandlerScheduler.cs index d7f508e16d..058d86c5e4 100644 --- a/src/ReactiveUI/Platforms/android/HandlerScheduler.cs +++ b/src/ReactiveUI/Platforms/android/HandlerScheduler.cs @@ -53,7 +53,7 @@ public HandlerScheduler(Handler handler, long? threadIdAssociatedWithHandler) /// public IDisposable Schedule(TState state, Func action) { - bool isCancelled = false; + var isCancelled = false; var innerDisp = new SerialDisposable() { Disposable = Disposable.Empty }; _handler.Post(() => @@ -74,7 +74,7 @@ public IDisposable Schedule(TState state, Func public IDisposable Schedule(TState state, TimeSpan dueTime, Func action) { - bool isCancelled = false; + var isCancelled = false; var innerDisp = new SerialDisposable() { Disposable = Disposable.Empty }; _handler.PostDelayed( diff --git a/src/ReactiveUI/Platforms/apple-common/KVOObservableForProperty.cs b/src/ReactiveUI/Platforms/apple-common/KVOObservableForProperty.cs index be6d1e303c..534a15308b 100644 --- a/src/ReactiveUI/Platforms/apple-common/KVOObservableForProperty.cs +++ b/src/ReactiveUI/Platforms/apple-common/KVOObservableForProperty.cs @@ -94,7 +94,7 @@ static KVOObservableForProperty() private static string FindCocoaNameFromNetName(Type senderType, string propertyName) { - bool propIsBoolean = false; + var propIsBoolean = false; var pi = senderType.GetTypeInfo().DeclaredProperties.FirstOrDefault(x => !x.IsStatic()); if (pi is null) diff --git a/src/ReactiveUI/Platforms/apple-common/NSRunloopScheduler.cs b/src/ReactiveUI/Platforms/apple-common/NSRunloopScheduler.cs index 7740c91599..7c211bd7b9 100644 --- a/src/ReactiveUI/Platforms/apple-common/NSRunloopScheduler.cs +++ b/src/ReactiveUI/Platforms/apple-common/NSRunloopScheduler.cs @@ -52,7 +52,7 @@ public IDisposable Schedule(TState state, DateTimeOffset dueTime, Func(TState state, TimeSpan dueTime, Func action) { var innerDisp = Disposable.Empty; - bool isCancelled = false; + var isCancelled = false; var timer = NSTimer.CreateScheduledTimer(dueTime, _ => { diff --git a/src/ReactiveUI/Platforms/apple-common/ObservableForPropertyBase.cs b/src/ReactiveUI/Platforms/apple-common/ObservableForPropertyBase.cs index 2538db8f45..01bd2ae74f 100644 --- a/src/ReactiveUI/Platforms/apple-common/ObservableForPropertyBase.cs +++ b/src/ReactiveUI/Platforms/apple-common/ObservableForPropertyBase.cs @@ -150,7 +150,7 @@ public int GetAffinityForObject(Type type, string propertyName, bool beforeChang /// Create observable. protected void Register(Type type, string property, int affinity, Func>> createObservable) { - if (!_config.TryGetValue(type, out Dictionary typeProperties)) + if (!_config.TryGetValue(type, out var typeProperties)) { typeProperties = new Dictionary(); _config[type] = typeProperties; diff --git a/src/ReactiveUI/Platforms/apple-common/TargetActionCommandBinder.cs b/src/ReactiveUI/Platforms/apple-common/TargetActionCommandBinder.cs index bdbf7ef1a3..2c1331089c 100644 --- a/src/ReactiveUI/Platforms/apple-common/TargetActionCommandBinder.cs +++ b/src/ReactiveUI/Platforms/apple-common/TargetActionCommandBinder.cs @@ -99,7 +99,7 @@ public IDisposable BindCommandToObject(ICommand command, object target, IObserva targetSetter?.Invoke(target, ctlDelegate, null); var actionDisp = Disposable.Create(() => targetSetter?.Invoke(target, null, null)); - Action? enabledSetter = Reflection.GetValueSetterForProperty(target.GetType().GetRuntimeProperty("Enabled")); + var enabledSetter = Reflection.GetValueSetterForProperty(target.GetType().GetRuntimeProperty("Enabled")); if (enabledSetter is null) { return actionDisp; diff --git a/src/ReactiveUI/Platforms/apple-common/ViewModelViewHost.cs b/src/ReactiveUI/Platforms/apple-common/ViewModelViewHost.cs index a15139bab4..b8b656033e 100644 --- a/src/ReactiveUI/Platforms/apple-common/ViewModelViewHost.cs +++ b/src/ReactiveUI/Platforms/apple-common/ViewModelViewHost.cs @@ -22,8 +22,6 @@ namespace ReactiveUI /// A control which will use Splat dependency injection to determine the View /// to show. It uses. /// - [SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1402:FileMayOnlyContainASingleType", Justification = "Classes with the same class names within.")] - [SuppressMessage("Design", "CA1010: Implement generic IEnumerable", Justification = "UI Kit exposes IEnumerable")] public class ViewModelViewHost : ReactiveViewController { private readonly SerialDisposable _currentView; @@ -40,7 +38,7 @@ public ViewModelViewHost() { _currentView = new SerialDisposable(); _viewContract = this - .WhenAnyObservable(x => x.ViewContractObservable!) + .WhenAnyObservable(x => x.ViewContractObservable) .ToProperty(this, x => x.ViewContract, initialValue: null, scheduler: RxApp.MainThreadScheduler); Initialize(); @@ -174,16 +172,14 @@ private static void Disown(NSViewController child) private void Initialize() { - var viewChange = Observable + var viewChange = this.WhenAnyValue(x => x.ViewModel) .CombineLatest( - this.WhenAnyValue(x => x.ViewModel), - this.WhenAnyObservable(x => x.ViewContractObservable!).StartWith((string?)null), + this.WhenAnyObservable(x => x.ViewContractObservable).StartWith((string?)null), (vm, contract) => new { ViewModel = vm, Contract = contract }) .Where(x => x.ViewModel is not null); - var defaultViewChange = Observable + var defaultViewChange = this.WhenAnyValue(x => x.ViewModel) .CombineLatest( - this.WhenAnyValue(x => x.ViewModel), this.WhenAnyValue(x => x.DefaultContent), (vm, defaultContent) => new { ViewModel = vm, DefaultContent = defaultContent }) .Where(x => x.ViewModel is null && x.DefaultContent is not null) @@ -210,20 +206,25 @@ private void Initialize() throw new Exception(message); } +#pragma warning disable RCS1221 // Use pattern matching instead of combination of 'as' operator and null check. var viewController = view as NSViewController; +#pragma warning restore RCS1221 // Use pattern matching instead of combination of 'as' operator and null check. if (viewController is null) { + //// TODO: As viewController = NULL at this point this excetion will never show the FullName, find fixed text to replace this with. + throw new Exception($"Resolved view type '{viewController?.GetType().FullName}' is not a '{typeof(NSViewController).FullName}'."); } view.ViewModel = x.ViewModel; Adopt(this, viewController); - var disposables = new CompositeDisposable(); - disposables.Add(viewController); - disposables.Add(Disposable.Create(() => Disown(viewController))); - _currentView.Disposable = disposables; + _currentView.Disposable = (CompositeDisposable?)new() + { + viewController, + Disposable.Create(() => Disown(viewController)) + }; }); defaultViewChange diff --git a/src/ReactiveUI/Platforms/tizen/EcoreMainloopScheduler.cs b/src/ReactiveUI/Platforms/tizen/EcoreMainloopScheduler.cs index 28c37118ab..e1b9acd832 100644 --- a/src/ReactiveUI/Platforms/tizen/EcoreMainloopScheduler.cs +++ b/src/ReactiveUI/Platforms/tizen/EcoreMainloopScheduler.cs @@ -32,7 +32,7 @@ public IDisposable Schedule(TState state, Func(TState state, TimeSpan dueTime, Func action) { var innerDisp = Disposable.Empty; - bool isCancelled = false; + var isCancelled = false; var timer = EcoreMainloop.AddTimer(dueTime.TotalSeconds, () => { diff --git a/src/ReactiveUI/Platforms/uikit-common/CommonReactiveSource.cs b/src/ReactiveUI/Platforms/uikit-common/CommonReactiveSource.cs index b323216287..8b91526789 100644 --- a/src/ReactiveUI/Platforms/uikit-common/CommonReactiveSource.cs +++ b/src/ReactiveUI/Platforms/uikit-common/CommonReactiveSource.cs @@ -146,7 +146,7 @@ private static IEnumerable GetUpdatesForEvent(PendingChange pendingChang // When item at index 1 is removed item at index 2 is now at index 1 and so on down the line. return Enumerable .Range(pendingChange.OldStartingIndex, pendingChange.OldItems is null ? 1 : pendingChange.OldItems.Count) - .Select(x => Update.CreateDelete(pendingChange.OldStartingIndex)); + .Select(_ => Update.CreateDelete(pendingChange.OldStartingIndex)); case NotifyCollectionChangedAction.Move: return Enumerable .Range(pendingChange.OldStartingIndex, pendingChange.OldItems is null ? 1 : pendingChange.OldItems.Count) @@ -172,7 +172,7 @@ private void SectionInfoChanging() _sectionInfoDisposable.Disposable = null; } - private void SectionInfoChanged(IReadOnlyList sectionInfo) + private void SectionInfoChanged(IReadOnlyList? sectionInfo) { VerifyOnMainThread(); @@ -236,10 +236,9 @@ private void SubscribeToSectionInfoChanges(int sectionInfoId, IReadOnlyList this.Log().Debug(CultureInfo.InvariantCulture, "[#{0}] IsReloadingData = {1}", sectionInfoId, y)) .Publish(); - var anySectionChanged = Observable - .Merge( - sectionInfo - .Select((y, index) => y.Collection!.ObserveCollectionChanges().Select(z => new { Section = index, Change = z }))) + var anySectionChanged = sectionInfo + .Select((y, index) => y.Collection!.ObserveCollectionChanges().Select(z => new { Section = index, Change = z })) + .Merge() .Publish(); // since reloads are applied asynchronously, it is possible for data to change whilst the reload is occurring @@ -269,7 +268,7 @@ private void SubscribeToSectionInfoChanges(int sectionInfoId, IReadOnlyList isReloading, _ => Observable.Empty, - (reloading, changeDetails) => new { Change = changeDetails.Change, Section = changeDetails.Section }) + (_, changeDetails) => (changeDetails.Change, changeDetails.Section)) .Subscribe( y => { @@ -336,18 +335,18 @@ private void ApplyPendingChanges(int sectionInfoId) { this.Log().Debug(CultureInfo.InvariantCulture, "[#{0}] The pending changes (in order received) are:", sectionInfoId); - foreach (var pendingSectionChange in _pendingChanges) + foreach (var (section, pendingChange) in _pendingChanges) { this.Log().Debug( CultureInfo.InvariantCulture, "[#{0}] Section {1}: Action = {2}, OldStartingIndex = {3}, NewStartingIndex = {4}, OldItems.Count = {5}, NewItems.Count = {6}", sectionInfoId, - pendingSectionChange.section, - pendingSectionChange.pendingChange.Action, - pendingSectionChange.pendingChange.OldStartingIndex, - pendingSectionChange.pendingChange.NewStartingIndex, - pendingSectionChange.pendingChange.OldItems is null ? "null" : pendingSectionChange.pendingChange.OldItems.Count.ToString(CultureInfo.InvariantCulture), - pendingSectionChange.pendingChange.NewItems is null ? "null" : pendingSectionChange.pendingChange.NewItems.Count.ToString(CultureInfo.InvariantCulture)); + section, + pendingChange.Action, + pendingChange.OldStartingIndex, + pendingChange.NewStartingIndex, + pendingChange.OldItems is null ? "null" : pendingChange.OldItems.Count.ToString(CultureInfo.InvariantCulture), + pendingChange.NewItems is null ? "null" : pendingChange.NewItems.Count.ToString(CultureInfo.InvariantCulture)); } } diff --git a/src/ReactiveUI/Platforms/uikit-common/FlexibleCommandBinder.cs b/src/ReactiveUI/Platforms/uikit-common/FlexibleCommandBinder.cs index a0071f6d06..e5083af346 100644 --- a/src/ReactiveUI/Platforms/uikit-common/FlexibleCommandBinder.cs +++ b/src/ReactiveUI/Platforms/uikit-common/FlexibleCommandBinder.cs @@ -149,7 +149,7 @@ protected static IDisposable ForTargetAction(ICommand command, object target, IO object? latestParam = null; - IDisposable actionDisposable = Disposable.Empty; + var actionDisposable = Disposable.Empty; if (target is UIControl ctl) { diff --git a/src/ReactiveUI/Platforms/uikit-common/RoutedViewHost.cs b/src/ReactiveUI/Platforms/uikit-common/RoutedViewHost.cs index d2785853c7..b1943d8be1 100644 --- a/src/ReactiveUI/Platforms/uikit-common/RoutedViewHost.cs +++ b/src/ReactiveUI/Platforms/uikit-common/RoutedViewHost.cs @@ -60,7 +60,7 @@ public RoutedViewHost() if (view is not null) { _titleUpdater.Disposable = Router.GetCurrentViewModel() - .WhenAnyValue(y => y!.UrlPathSegment) + .WhenAnyValue(y => y.UrlPathSegment) .Subscribe(y => view.NavigationItem.Title = y); } } @@ -86,7 +86,7 @@ public RoutedViewHost() if (x?.View is not null) { _titleUpdater.Disposable = Router.GetCurrentViewModel() - .WhenAnyValue(y => y!.UrlPathSegment) + .WhenAnyValue(y => y.UrlPathSegment) .Subscribe(y => x.View.NavigationItem.Title = y); } @@ -205,12 +205,9 @@ protected override void Dispose(bool disposing) view.ViewModel = viewModel; - if (!(view is NSViewController viewController)) - { - throw new Exception($"View type {view.GetType().Name} for view model type {viewModel.GetType().Name} is not a UIViewController"); - } - - return viewController; + return view is not NSViewController viewController + ? throw new Exception($"View type {view.GetType().Name} for view model type {viewModel.GetType().Name} is not a UIViewController") + : viewController; } } } diff --git a/src/ReactiveUI/Platforms/windows-common/AutoDataTemplateBindingHook.cs b/src/ReactiveUI/Platforms/windows-common/AutoDataTemplateBindingHook.cs index 3fb5aaeb29..3eb5e44be3 100644 --- a/src/ReactiveUI/Platforms/windows-common/AutoDataTemplateBindingHook.cs +++ b/src/ReactiveUI/Platforms/windows-common/AutoDataTemplateBindingHook.cs @@ -48,7 +48,7 @@ public class AutoDataTemplateBindingHook : IPropertyBindingHook "" + ""; - string? assemblyName = typeof(AutoDataTemplateBindingHook).Assembly.FullName; + var assemblyName = typeof(AutoDataTemplateBindingHook).Assembly.FullName; assemblyName = assemblyName?.Substring(0, assemblyName.IndexOf(',')); return (DataTemplate)XamlReader.Parse(template.Replace("__ASSEMBLYNAME__", assemblyName)); diff --git a/src/ReactiveUI/ReactiveCommand/ReactiveCommandBase.cs b/src/ReactiveUI/ReactiveCommand/ReactiveCommandBase.cs index f5354c58fe..74cf2b01f8 100644 --- a/src/ReactiveUI/ReactiveCommand/ReactiveCommandBase.cs +++ b/src/ReactiveUI/ReactiveCommand/ReactiveCommandBase.cs @@ -242,7 +242,7 @@ protected virtual void ICommandExecute(object? parameter) $"Command requires parameters of type {typeof(TParam).FullName}, but received parameter of type {parameter.GetType().FullName}."); } - IObservable result = parameter is null ? Execute() : Execute((TParam)parameter); + var result = parameter is null ? Execute() : Execute((TParam)parameter); result .Catch(Observable.Empty) diff --git a/src/ReactiveUI/ReactiveCommand/ReactiveCommandMixins.cs b/src/ReactiveUI/ReactiveCommand/ReactiveCommandMixins.cs index 9ae4601e49..522de9d12a 100644 --- a/src/ReactiveUI/ReactiveCommand/ReactiveCommandMixins.cs +++ b/src/ReactiveUI/ReactiveCommand/ReactiveCommandMixins.cs @@ -55,18 +55,13 @@ public static IDisposable InvokeCommand(this IObservable item, ICommand? c /// The command to be executed. /// An object that when disposes, disconnects the Observable /// from the command. - public static IDisposable InvokeCommand(this IObservable item, ReactiveCommandBase? command) - { - if (command is null) - { - throw new ArgumentNullException(nameof(command)); - } - - return WithLatestFromFixed(item, command.CanExecute, (value, canExecute) => new InvokeCommandInfo, T>(command, canExecute, value)) + public static IDisposable InvokeCommand(this IObservable item, ReactiveCommandBase? command) => + command is null + ? throw new ArgumentNullException(nameof(command)) + : WithLatestFromFixed(item, command.CanExecute, (value, canExecute) => new InvokeCommandInfo, T>(command, canExecute, value)) .Where(ii => ii.CanExecute) .SelectMany(ii => command.Execute(ii.Value).Catch(Observable.Empty)) .Subscribe(); - } /// /// A utility method that will pipe an Observable to an ICommand (i.e. @@ -83,7 +78,7 @@ public static IDisposable InvokeCommand(this IObservable item, Re public static IDisposable InvokeCommand(this IObservable item, TTarget? target, Expression> commandProperty) where TTarget : class { - var commandObs = target.WhenAnyValue(commandProperty!); + var commandObs = target.WhenAnyValue(commandProperty); var commandCanExecuteChanged = commandObs .Select(command => command is null ? Observable.Empty : Observable .FromEvent( @@ -115,7 +110,7 @@ public static IDisposable InvokeCommand(this IObservable item, TT public static IDisposable InvokeCommand(this IObservable item, TTarget? target, Expression?>> commandProperty) where TTarget : class { - var command = target.WhenAnyValue(commandProperty!); + var command = target.WhenAnyValue(commandProperty); var invocationInfo = command .Select(cmd => cmd is null ? Observable, T>>.Empty : diff --git a/src/ReactiveUI/ReactiveObject/IReactiveObjectExtensions.cs b/src/ReactiveUI/ReactiveObject/IReactiveObjectExtensions.cs index 02c3c0ad21..ca33ae1fe5 100644 --- a/src/ReactiveUI/ReactiveObject/IReactiveObjectExtensions.cs +++ b/src/ReactiveUI/ReactiveObject/IReactiveObjectExtensions.cs @@ -398,7 +398,7 @@ private static IEnumerable DistinctEvents(IList(); var uniqueEvents = new Stack(events.Count); - for (int i = events.Count - 1; i >= 0; i--) + for (var i = events.Count - 1; i >= 0; i--) { var propertyName = events[i].PropertyName; if (propertyName is not null && seen.Add(propertyName)) diff --git a/src/ReactiveUI/Routing/MessageBus.cs b/src/ReactiveUI/Routing/MessageBus.cs index 576d9027a8..34a2ae7a9e 100644 --- a/src/ReactiveUI/Routing/MessageBus.cs +++ b/src/ReactiveUI/Routing/MessageBus.cs @@ -92,7 +92,7 @@ public IObservable ListenIncludeLatest(string? contract = null) /// True if messages have been posted for this message Type. public bool IsRegistered(Type type, string? contract = null) { - bool ret = false; + var ret = false; WithMessageBus(type, contract, (mb, item) => { ret = mb.ContainsKey(item) && mb[item].IsAlive; }); return ret; diff --git a/src/ReactiveUI/VariadicTemplates.cs b/src/ReactiveUI/VariadicTemplates.cs index c5ee2ec4d7..c8f935b63d 100644 --- a/src/ReactiveUI/VariadicTemplates.cs +++ b/src/ReactiveUI/VariadicTemplates.cs @@ -2,6 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +#nullable enable + //------------------------------------------------------------------------------ // // This code was generated from a template. @@ -31,15 +33,15 @@ public static class WhenAnyMixin /// /// The object where the property chain starts. /// The first property chain to reference. This will be a expression pointing to a end property or field. - public static IObservable WhenAnyValue( - this TSender sender, - Expression> property1) + public static IObservable WhenAnyValue( + this TSender? sender, + Expression> property1) { - return sender.WhenAny(property1, (IObservedChange c1) => c1.Value); + return sender.WhenAny(property1, (IObservedChange c1) => c1.Value); } - - + + /// /// WhenAnyValue allows you to observe whenever the value of one or more /// properties on an object have changed, providing an initial value when @@ -50,10 +52,10 @@ public static IObservable WhenAnyValue( /// The object where the property chain starts. /// The 1 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyValue( - this TSender sender, - Expression> property1, - Func selector) + public static IObservable WhenAnyValue( + this TSender? sender, + Expression> property1, + Func selector) { return sender.WhenAny(property1, (c1) => @@ -70,13 +72,13 @@ public static IObservable WhenAnyValue( /// The object where the property chain starts. /// The 1 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAny( - this TSender sender, - Expression> property1, - Func, TRet> selector) + public static IObservable WhenAny( + this TSender? sender, + Expression> property1, + Func, TRet?> selector) { - return sender.ObservableForProperty(property1, false, false).Select(selector); - } + return sender.ObservableForProperty(property1, false, false).Select(selector); + } /// @@ -89,15 +91,15 @@ public static IObservable WhenAny( /// The object where the property chain starts. /// The 1 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyDynamic( - this TSender sender, - Expression property1, - Func, TRet> selector) - { - return ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property1, false, false).Select(selector); - } - + public static IObservable WhenAnyDynamic( + this TSender? sender, + Expression? property1, + Func, TRet?> selector) + { + return ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property1, false, false).Select(selector); + } + /// /// WhenAnyValue allows you to observe whenever the value of one or more /// properties on an object have changed, providing an initial value when @@ -108,17 +110,17 @@ public static IObservable WhenAnyDynamic( /// The object where the property chain starts. /// The 1 property chain to reference. This will be a expression pointing to a end property or field. /// The 2 property chain to reference. This will be a expression pointing to a end property or field. - public static IObservable<(T1, T2)> WhenAnyValue( - this TSender sender, - Expression> property1, - Expression> property2 + public static IObservable<(T1?,T2?)> WhenAnyValue( + this TSender? sender, + Expression> property1, + Expression> property2 ) { return sender.WhenAny(property1, property2, (c1, c2) => (c1.Value, c2.Value)); } - + /// /// WhenAnyValue allows you to observe whenever the value of one or more /// properties on an object have changed, providing an initial value when @@ -130,11 +132,11 @@ Expression> property2 /// The 1 property chain to reference. This will be a expression pointing to a end property or field. /// The 2 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyValue( - this TSender sender, - Expression> property1, - Expression> property2, - Func selector) + public static IObservable WhenAnyValue( + this TSender? sender, + Expression> property1, + Expression> property2, + Func selector) { return sender.WhenAny(property1, property2, (c1, c2) => @@ -152,18 +154,18 @@ public static IObservable WhenAnyValue( /// The 1 property chain to reference. This will be a expression pointing to a end property or field. /// The 2 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAny( - this TSender sender, - Expression> property1, - Expression> property2, - Func, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - sender.ObservableForProperty(property1, false, false), - sender.ObservableForProperty(property2, false, false), - selector -); - } + public static IObservable WhenAny( + this TSender? sender, + Expression> property1, + Expression> property2, + Func, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + sender.ObservableForProperty(property1, false, false), + sender.ObservableForProperty(property2, false, false), + selector + ); + } /// @@ -177,21 +179,21 @@ public static IObservable WhenAny( /// The 1 property chain to reference. This will be a expression pointing to a end property or field. /// The 2 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyDynamic( - this TSender sender, - Expression property1, - Expression property2, - Func, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property1, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property2, false, false), - selector -); - } - + public static IObservable WhenAnyDynamic( + this TSender? sender, + Expression? property1, + Expression? property2, + Func, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property1, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property2, false, false), + selector + ); + } + /// /// WhenAnyValue allows you to observe whenever the value of one or more /// properties on an object have changed, providing an initial value when @@ -203,18 +205,18 @@ public static IObservable WhenAnyDynamic( /// The 1 property chain to reference. This will be a expression pointing to a end property or field. /// The 2 property chain to reference. This will be a expression pointing to a end property or field. /// The 3 property chain to reference. This will be a expression pointing to a end property or field. - public static IObservable<(T1, T2, T3)> WhenAnyValue( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3 + public static IObservable<(T1?,T2?,T3?)> WhenAnyValue( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3 ) { return sender.WhenAny(property1, property2, property3, (c1, c2, c3) => (c1.Value, c2.Value, c3.Value)); } - + /// /// WhenAnyValue allows you to observe whenever the value of one or more /// properties on an object have changed, providing an initial value when @@ -227,12 +229,12 @@ Expression> property3 /// The 2 property chain to reference. This will be a expression pointing to a end property or field. /// The 3 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyValue( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Func selector) + public static IObservable WhenAnyValue( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Func selector) { return sender.WhenAny(property1, property2, property3, (c1, c2, c3) => @@ -251,20 +253,20 @@ public static IObservable WhenAnyValue( /// The 2 property chain to reference. This will be a expression pointing to a end property or field. /// The 3 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAny( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Func, IObservedChange, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - sender.ObservableForProperty(property1, false, false), - sender.ObservableForProperty(property2, false, false), - sender.ObservableForProperty(property3, false, false), - selector -); - } + public static IObservable WhenAny( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Func, IObservedChange, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + sender.ObservableForProperty(property1, false, false), + sender.ObservableForProperty(property2, false, false), + sender.ObservableForProperty(property3, false, false), + selector + ); + } /// @@ -279,24 +281,24 @@ public static IObservable WhenAny( /// The 2 property chain to reference. This will be a expression pointing to a end property or field. /// The 3 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyDynamic( - this TSender sender, - Expression property1, - Expression property2, - Expression property3, - Func, IObservedChange, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property1, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property2, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property3, false, false), - selector -); - } - + public static IObservable WhenAnyDynamic( + this TSender? sender, + Expression? property1, + Expression? property2, + Expression? property3, + Func, IObservedChange, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property1, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property2, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property3, false, false), + selector + ); + } + /// /// WhenAnyValue allows you to observe whenever the value of one or more /// properties on an object have changed, providing an initial value when @@ -309,19 +311,19 @@ public static IObservable WhenAnyDynamic( /// The 2 property chain to reference. This will be a expression pointing to a end property or field. /// The 3 property chain to reference. This will be a expression pointing to a end property or field. /// The 4 property chain to reference. This will be a expression pointing to a end property or field. - public static IObservable<(T1, T2, T3, T4)> WhenAnyValue( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4 + public static IObservable<(T1?,T2?,T3?,T4?)> WhenAnyValue( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4 ) { return sender.WhenAny(property1, property2, property3, property4, (c1, c2, c3, c4) => (c1.Value, c2.Value, c3.Value, c4.Value)); } - + /// /// WhenAnyValue allows you to observe whenever the value of one or more /// properties on an object have changed, providing an initial value when @@ -335,13 +337,13 @@ Expression> property4 /// The 3 property chain to reference. This will be a expression pointing to a end property or field. /// The 4 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyValue( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Func selector) + public static IObservable WhenAnyValue( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Func selector) { return sender.WhenAny(property1, property2, property3, property4, (c1, c2, c3, c4) => @@ -361,22 +363,22 @@ public static IObservable WhenAnyValue( /// The 3 property chain to reference. This will be a expression pointing to a end property or field. /// The 4 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAny( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Func, IObservedChange, IObservedChange, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - sender.ObservableForProperty(property1, false, false), - sender.ObservableForProperty(property2, false, false), - sender.ObservableForProperty(property3, false, false), - sender.ObservableForProperty(property4, false, false), - selector -); - } + public static IObservable WhenAny( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Func, IObservedChange, IObservedChange, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + sender.ObservableForProperty(property1, false, false), + sender.ObservableForProperty(property2, false, false), + sender.ObservableForProperty(property3, false, false), + sender.ObservableForProperty(property4, false, false), + selector + ); + } /// @@ -392,27 +394,27 @@ public static IObservable WhenAny( /// The 3 property chain to reference. This will be a expression pointing to a end property or field. /// The 4 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyDynamic( - this TSender sender, - Expression property1, - Expression property2, - Expression property3, - Expression property4, - Func, IObservedChange, IObservedChange, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property1, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property2, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property3, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property4, false, false), - selector -); - } - + public static IObservable WhenAnyDynamic( + this TSender? sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Func, IObservedChange, IObservedChange, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property1, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property2, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property3, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property4, false, false), + selector + ); + } + /// /// WhenAnyValue allows you to observe whenever the value of one or more /// properties on an object have changed, providing an initial value when @@ -426,20 +428,20 @@ public static IObservable WhenAnyDynamic( /// The 3 property chain to reference. This will be a expression pointing to a end property or field. /// The 4 property chain to reference. This will be a expression pointing to a end property or field. /// The 5 property chain to reference. This will be a expression pointing to a end property or field. - public static IObservable<(T1, T2, T3, T4, T5)> WhenAnyValue( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Expression> property5 + public static IObservable<(T1?,T2?,T3?,T4?,T5?)> WhenAnyValue( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5 ) { return sender.WhenAny(property1, property2, property3, property4, property5, (c1, c2, c3, c4, c5) => (c1.Value, c2.Value, c3.Value, c4.Value, c5.Value)); } - + /// /// WhenAnyValue allows you to observe whenever the value of one or more /// properties on an object have changed, providing an initial value when @@ -454,14 +456,14 @@ Expression> property5 /// The 4 property chain to reference. This will be a expression pointing to a end property or field. /// The 5 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyValue( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Expression> property5, - Func selector) + public static IObservable WhenAnyValue( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Func selector) { return sender.WhenAny(property1, property2, property3, property4, property5, (c1, c2, c3, c4, c5) => @@ -482,24 +484,24 @@ public static IObservable WhenAnyValue( /// The 4 property chain to reference. This will be a expression pointing to a end property or field. /// The 5 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAny( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Expression> property5, - Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - sender.ObservableForProperty(property1, false, false), - sender.ObservableForProperty(property2, false, false), - sender.ObservableForProperty(property3, false, false), - sender.ObservableForProperty(property4, false, false), - sender.ObservableForProperty(property5, false, false), - selector -); - } + public static IObservable WhenAny( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + sender.ObservableForProperty(property1, false, false), + sender.ObservableForProperty(property2, false, false), + sender.ObservableForProperty(property3, false, false), + sender.ObservableForProperty(property4, false, false), + sender.ObservableForProperty(property5, false, false), + selector + ); + } /// @@ -516,30 +518,30 @@ public static IObservable WhenAny( /// The 4 property chain to reference. This will be a expression pointing to a end property or field. /// The 5 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyDynamic( - this TSender sender, - Expression property1, - Expression property2, - Expression property3, - Expression property4, - Expression property5, - Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property1, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property2, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property3, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property4, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property5, false, false), - selector -); - } - + public static IObservable WhenAnyDynamic( + this TSender? sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property1, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property2, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property3, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property4, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property5, false, false), + selector + ); + } + /// /// WhenAnyValue allows you to observe whenever the value of one or more /// properties on an object have changed, providing an initial value when @@ -554,21 +556,21 @@ public static IObservable WhenAnyDynamic( /// The 4 property chain to reference. This will be a expression pointing to a end property or field. /// The 5 property chain to reference. This will be a expression pointing to a end property or field. /// The 6 property chain to reference. This will be a expression pointing to a end property or field. - public static IObservable<(T1, T2, T3, T4, T5, T6)> WhenAnyValue( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Expression> property5, - Expression> property6 + public static IObservable<(T1?,T2?,T3?,T4?,T5?,T6?)> WhenAnyValue( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6 ) { return sender.WhenAny(property1, property2, property3, property4, property5, property6, (c1, c2, c3, c4, c5, c6) => (c1.Value, c2.Value, c3.Value, c4.Value, c5.Value, c6.Value)); } - + /// /// WhenAnyValue allows you to observe whenever the value of one or more /// properties on an object have changed, providing an initial value when @@ -584,15 +586,15 @@ Expression> property6 /// The 5 property chain to reference. This will be a expression pointing to a end property or field. /// The 6 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyValue( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Expression> property5, - Expression> property6, - Func selector) + public static IObservable WhenAnyValue( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Func selector) { return sender.WhenAny(property1, property2, property3, property4, property5, property6, (c1, c2, c3, c4, c5, c6) => @@ -614,26 +616,26 @@ public static IObservable WhenAnyValueThe 5 property chain to reference. This will be a expression pointing to a end property or field. /// The 6 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAny( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Expression> property5, - Expression> property6, - Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - sender.ObservableForProperty(property1, false, false), - sender.ObservableForProperty(property2, false, false), - sender.ObservableForProperty(property3, false, false), - sender.ObservableForProperty(property4, false, false), - sender.ObservableForProperty(property5, false, false), - sender.ObservableForProperty(property6, false, false), - selector -); - } + public static IObservable WhenAny( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + sender.ObservableForProperty(property1, false, false), + sender.ObservableForProperty(property2, false, false), + sender.ObservableForProperty(property3, false, false), + sender.ObservableForProperty(property4, false, false), + sender.ObservableForProperty(property5, false, false), + sender.ObservableForProperty(property6, false, false), + selector + ); + } /// @@ -651,33 +653,33 @@ public static IObservable WhenAny( /// The 5 property chain to reference. This will be a expression pointing to a end property or field. /// The 6 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyDynamic( - this TSender sender, - Expression property1, - Expression property2, - Expression property3, - Expression property4, - Expression property5, - Expression property6, - Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property1, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property2, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property3, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property4, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property5, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property6, false, false), - selector -); - } - + public static IObservable WhenAnyDynamic( + this TSender? sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property1, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property2, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property3, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property4, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property5, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property6, false, false), + selector + ); + } + /// /// WhenAnyValue allows you to observe whenever the value of one or more /// properties on an object have changed, providing an initial value when @@ -693,22 +695,22 @@ public static IObservable WhenAnyDynamic( /// The 5 property chain to reference. This will be a expression pointing to a end property or field. /// The 6 property chain to reference. This will be a expression pointing to a end property or field. /// The 7 property chain to reference. This will be a expression pointing to a end property or field. - public static IObservable<(T1, T2, T3, T4, T5, T6, T7)> WhenAnyValue( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Expression> property5, - Expression> property6, - Expression> property7 + public static IObservable<(T1?,T2?,T3?,T4?,T5?,T6?,T7?)> WhenAnyValue( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7 ) { return sender.WhenAny(property1, property2, property3, property4, property5, property6, property7, (c1, c2, c3, c4, c5, c6, c7) => (c1.Value, c2.Value, c3.Value, c4.Value, c5.Value, c6.Value, c7.Value)); } - + /// /// WhenAnyValue allows you to observe whenever the value of one or more /// properties on an object have changed, providing an initial value when @@ -725,16 +727,16 @@ Expression> property7 /// The 6 property chain to reference. This will be a expression pointing to a end property or field. /// The 7 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyValue( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Expression> property5, - Expression> property6, - Expression> property7, - Func selector) + public static IObservable WhenAnyValue( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Func selector) { return sender.WhenAny(property1, property2, property3, property4, property5, property6, property7, (c1, c2, c3, c4, c5, c6, c7) => @@ -757,28 +759,28 @@ public static IObservable WhenAnyValueThe 6 property chain to reference. This will be a expression pointing to a end property or field. /// The 7 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAny( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Expression> property5, - Expression> property6, - Expression> property7, - Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - sender.ObservableForProperty(property1, false, false), - sender.ObservableForProperty(property2, false, false), - sender.ObservableForProperty(property3, false, false), - sender.ObservableForProperty(property4, false, false), - sender.ObservableForProperty(property5, false, false), - sender.ObservableForProperty(property6, false, false), - sender.ObservableForProperty(property7, false, false), - selector -); - } + public static IObservable WhenAny( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + sender.ObservableForProperty(property1, false, false), + sender.ObservableForProperty(property2, false, false), + sender.ObservableForProperty(property3, false, false), + sender.ObservableForProperty(property4, false, false), + sender.ObservableForProperty(property5, false, false), + sender.ObservableForProperty(property6, false, false), + sender.ObservableForProperty(property7, false, false), + selector + ); + } /// @@ -797,37 +799,37 @@ public static IObservable WhenAnyThe 6 property chain to reference. This will be a expression pointing to a end property or field. /// The 7 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyDynamic( - this TSender sender, - Expression property1, - Expression property2, - Expression property3, - Expression property4, - Expression property5, - Expression property6, - Expression property7, - Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property1, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property2, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property3, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property4, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property5, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property6, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property7, false, false), - selector -); - } - - + public static IObservable WhenAnyDynamic( + this TSender? sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Expression? property7, + Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property1, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property2, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property3, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property4, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property5, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property6, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property7, false, false), + selector + ); + } + + /// /// WhenAnyValue allows you to observe whenever the value of one or more /// properties on an object have changed, providing an initial value when @@ -845,17 +847,17 @@ public static IObservable WhenAnyDynamic( /// The 7 property chain to reference. This will be a expression pointing to a end property or field. /// The 8 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyValue( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Expression> property5, - Expression> property6, - Expression> property7, - Expression> property8, - Func selector) + public static IObservable WhenAnyValue( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Func selector) { return sender.WhenAny(property1, property2, property3, property4, property5, property6, property7, property8, (c1, c2, c3, c4, c5, c6, c7, c8) => @@ -879,30 +881,30 @@ public static IObservable WhenAnyValueThe 7 property chain to reference. This will be a expression pointing to a end property or field. /// The 8 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAny( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Expression> property5, - Expression> property6, - Expression> property7, - Expression> property8, - Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - sender.ObservableForProperty(property1, false, false), - sender.ObservableForProperty(property2, false, false), - sender.ObservableForProperty(property3, false, false), - sender.ObservableForProperty(property4, false, false), - sender.ObservableForProperty(property5, false, false), - sender.ObservableForProperty(property6, false, false), - sender.ObservableForProperty(property7, false, false), - sender.ObservableForProperty(property8, false, false), - selector -); - } + public static IObservable WhenAny( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + sender.ObservableForProperty(property1, false, false), + sender.ObservableForProperty(property2, false, false), + sender.ObservableForProperty(property3, false, false), + sender.ObservableForProperty(property4, false, false), + sender.ObservableForProperty(property5, false, false), + sender.ObservableForProperty(property6, false, false), + sender.ObservableForProperty(property7, false, false), + sender.ObservableForProperty(property8, false, false), + selector + ); + } /// @@ -922,40 +924,40 @@ public static IObservable WhenAnyThe 7 property chain to reference. This will be a expression pointing to a end property or field. /// The 8 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyDynamic( - this TSender sender, - Expression property1, - Expression property2, - Expression property3, - Expression property4, - Expression property5, - Expression property6, - Expression property7, - Expression property8, - Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property1, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property2, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property3, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property4, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property5, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property6, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property7, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property8, false, false), - selector -); - } - - + public static IObservable WhenAnyDynamic( + this TSender? sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Expression? property7, + Expression? property8, + Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property1, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property2, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property3, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property4, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property5, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property6, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property7, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property8, false, false), + selector + ); + } + + /// /// WhenAnyValue allows you to observe whenever the value of one or more /// properties on an object have changed, providing an initial value when @@ -974,18 +976,18 @@ public static IObservable WhenAnyDynamic( /// The 8 property chain to reference. This will be a expression pointing to a end property or field. /// The 9 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyValue( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Expression> property5, - Expression> property6, - Expression> property7, - Expression> property8, - Expression> property9, - Func selector) + public static IObservable WhenAnyValue( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Func selector) { return sender.WhenAny(property1, property2, property3, property4, property5, property6, property7, property8, property9, (c1, c2, c3, c4, c5, c6, c7, c8, c9) => @@ -1010,32 +1012,32 @@ public static IObservable WhenAnyValueThe 8 property chain to reference. This will be a expression pointing to a end property or field. /// The 9 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAny( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Expression> property5, - Expression> property6, - Expression> property7, - Expression> property8, - Expression> property9, - Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - sender.ObservableForProperty(property1, false, false), - sender.ObservableForProperty(property2, false, false), - sender.ObservableForProperty(property3, false, false), - sender.ObservableForProperty(property4, false, false), - sender.ObservableForProperty(property5, false, false), - sender.ObservableForProperty(property6, false, false), - sender.ObservableForProperty(property7, false, false), - sender.ObservableForProperty(property8, false, false), - sender.ObservableForProperty(property9, false, false), - selector -); - } + public static IObservable WhenAny( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + sender.ObservableForProperty(property1, false, false), + sender.ObservableForProperty(property2, false, false), + sender.ObservableForProperty(property3, false, false), + sender.ObservableForProperty(property4, false, false), + sender.ObservableForProperty(property5, false, false), + sender.ObservableForProperty(property6, false, false), + sender.ObservableForProperty(property7, false, false), + sender.ObservableForProperty(property8, false, false), + sender.ObservableForProperty(property9, false, false), + selector + ); + } /// @@ -1056,43 +1058,43 @@ public static IObservable WhenAnyThe 8 property chain to reference. This will be a expression pointing to a end property or field. /// The 9 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyDynamic( - this TSender sender, - Expression property1, - Expression property2, - Expression property3, - Expression property4, - Expression property5, - Expression property6, - Expression property7, - Expression property8, - Expression property9, - Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property1, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property2, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property3, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property4, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property5, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property6, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property7, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property8, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property9, false, false), - selector -); - } - - + public static IObservable WhenAnyDynamic( + this TSender? sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Expression? property7, + Expression? property8, + Expression? property9, + Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property1, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property2, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property3, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property4, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property5, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property6, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property7, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property8, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property9, false, false), + selector + ); + } + + /// /// WhenAnyValue allows you to observe whenever the value of one or more /// properties on an object have changed, providing an initial value when @@ -1112,19 +1114,19 @@ public static IObservable WhenAnyDynamic( /// The 9 property chain to reference. This will be a expression pointing to a end property or field. /// The 10 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyValue( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Expression> property5, - Expression> property6, - Expression> property7, - Expression> property8, - Expression> property9, - Expression> property10, - Func selector) + public static IObservable WhenAnyValue( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Func selector) { return sender.WhenAny(property1, property2, property3, property4, property5, property6, property7, property8, property9, property10, (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) => @@ -1150,34 +1152,34 @@ public static IObservable WhenAnyValueThe 9 property chain to reference. This will be a expression pointing to a end property or field. /// The 10 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAny( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Expression> property5, - Expression> property6, - Expression> property7, - Expression> property8, - Expression> property9, - Expression> property10, - Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - sender.ObservableForProperty(property1, false, false), - sender.ObservableForProperty(property2, false, false), - sender.ObservableForProperty(property3, false, false), - sender.ObservableForProperty(property4, false, false), - sender.ObservableForProperty(property5, false, false), - sender.ObservableForProperty(property6, false, false), - sender.ObservableForProperty(property7, false, false), - sender.ObservableForProperty(property8, false, false), - sender.ObservableForProperty(property9, false, false), - sender.ObservableForProperty(property10, false, false), - selector -); - } + public static IObservable WhenAny( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + sender.ObservableForProperty(property1, false, false), + sender.ObservableForProperty(property2, false, false), + sender.ObservableForProperty(property3, false, false), + sender.ObservableForProperty(property4, false, false), + sender.ObservableForProperty(property5, false, false), + sender.ObservableForProperty(property6, false, false), + sender.ObservableForProperty(property7, false, false), + sender.ObservableForProperty(property8, false, false), + sender.ObservableForProperty(property9, false, false), + sender.ObservableForProperty(property10, false, false), + selector + ); + } /// @@ -1199,46 +1201,46 @@ public static IObservable WhenAnyThe 9 property chain to reference. This will be a expression pointing to a end property or field. /// The 10 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyDynamic( - this TSender sender, - Expression property1, - Expression property2, - Expression property3, - Expression property4, - Expression property5, - Expression property6, - Expression property7, - Expression property8, - Expression property9, - Expression property10, - Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property1, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property2, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property3, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property4, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property5, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property6, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property7, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property8, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property9, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property10, false, false), - selector -); - } - - + public static IObservable WhenAnyDynamic( + this TSender? sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Expression? property7, + Expression? property8, + Expression? property9, + Expression? property10, + Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property1, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property2, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property3, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property4, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property5, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property6, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property7, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property8, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property9, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property10, false, false), + selector + ); + } + + /// /// WhenAnyValue allows you to observe whenever the value of one or more /// properties on an object have changed, providing an initial value when @@ -1259,20 +1261,20 @@ public static IObservable WhenAnyDynamic( /// The 10 property chain to reference. This will be a expression pointing to a end property or field. /// The 11 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyValue( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Expression> property5, - Expression> property6, - Expression> property7, - Expression> property8, - Expression> property9, - Expression> property10, - Expression> property11, - Func selector) + public static IObservable WhenAnyValue( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Func selector) { return sender.WhenAny(property1, property2, property3, property4, property5, property6, property7, property8, property9, property10, property11, (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) => @@ -1299,36 +1301,36 @@ public static IObservable WhenAnyValueThe 10 property chain to reference. This will be a expression pointing to a end property or field. /// The 11 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAny( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Expression> property5, - Expression> property6, - Expression> property7, - Expression> property8, - Expression> property9, - Expression> property10, - Expression> property11, - Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - sender.ObservableForProperty(property1, false, false), - sender.ObservableForProperty(property2, false, false), - sender.ObservableForProperty(property3, false, false), - sender.ObservableForProperty(property4, false, false), - sender.ObservableForProperty(property5, false, false), - sender.ObservableForProperty(property6, false, false), - sender.ObservableForProperty(property7, false, false), - sender.ObservableForProperty(property8, false, false), - sender.ObservableForProperty(property9, false, false), - sender.ObservableForProperty(property10, false, false), - sender.ObservableForProperty(property11, false, false), - selector -); - } + public static IObservable WhenAny( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + sender.ObservableForProperty(property1, false, false), + sender.ObservableForProperty(property2, false, false), + sender.ObservableForProperty(property3, false, false), + sender.ObservableForProperty(property4, false, false), + sender.ObservableForProperty(property5, false, false), + sender.ObservableForProperty(property6, false, false), + sender.ObservableForProperty(property7, false, false), + sender.ObservableForProperty(property8, false, false), + sender.ObservableForProperty(property9, false, false), + sender.ObservableForProperty(property10, false, false), + sender.ObservableForProperty(property11, false, false), + selector + ); + } /// @@ -1351,49 +1353,49 @@ public static IObservable WhenAnyThe 10 property chain to reference. This will be a expression pointing to a end property or field. /// The 11 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyDynamic( - this TSender sender, - Expression property1, - Expression property2, - Expression property3, - Expression property4, - Expression property5, - Expression property6, - Expression property7, - Expression property8, - Expression property9, - Expression property10, - Expression property11, - Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property1, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property2, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property3, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property4, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property5, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property6, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property7, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property8, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property9, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property10, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property11, false, false), - selector -); - } - - + public static IObservable WhenAnyDynamic( + this TSender? sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Expression? property7, + Expression? property8, + Expression? property9, + Expression? property10, + Expression? property11, + Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property1, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property2, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property3, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property4, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property5, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property6, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property7, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property8, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property9, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property10, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property11, false, false), + selector + ); + } + + /// /// WhenAnyValue allows you to observe whenever the value of one or more /// properties on an object have changed, providing an initial value when @@ -1415,21 +1417,21 @@ public static IObservable WhenAnyDynamic( /// The 11 property chain to reference. This will be a expression pointing to a end property or field. /// The 12 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyValue( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Expression> property5, - Expression> property6, - Expression> property7, - Expression> property8, - Expression> property9, - Expression> property10, - Expression> property11, - Expression> property12, - Func selector) + public static IObservable WhenAnyValue( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Func selector) { return sender.WhenAny(property1, property2, property3, property4, property5, property6, property7, property8, property9, property10, property11, property12, (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) => @@ -1457,38 +1459,38 @@ public static IObservable WhenAnyValueThe 11 property chain to reference. This will be a expression pointing to a end property or field. /// The 12 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAny( - this TSender sender, - Expression> property1, - Expression> property2, - Expression> property3, - Expression> property4, - Expression> property5, - Expression> property6, - Expression> property7, - Expression> property8, - Expression> property9, - Expression> property10, - Expression> property11, - Expression> property12, - Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - sender.ObservableForProperty(property1, false, false), - sender.ObservableForProperty(property2, false, false), - sender.ObservableForProperty(property3, false, false), - sender.ObservableForProperty(property4, false, false), - sender.ObservableForProperty(property5, false, false), - sender.ObservableForProperty(property6, false, false), - sender.ObservableForProperty(property7, false, false), - sender.ObservableForProperty(property8, false, false), - sender.ObservableForProperty(property9, false, false), - sender.ObservableForProperty(property10, false, false), - sender.ObservableForProperty(property11, false, false), - sender.ObservableForProperty(property12, false, false), - selector -); - } + public static IObservable WhenAny( + this TSender? sender, + Expression> property1, + Expression> property2, + Expression> property3, + Expression> property4, + Expression> property5, + Expression> property6, + Expression> property7, + Expression> property8, + Expression> property9, + Expression> property10, + Expression> property11, + Expression> property12, + Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + sender.ObservableForProperty(property1, false, false), + sender.ObservableForProperty(property2, false, false), + sender.ObservableForProperty(property3, false, false), + sender.ObservableForProperty(property4, false, false), + sender.ObservableForProperty(property5, false, false), + sender.ObservableForProperty(property6, false, false), + sender.ObservableForProperty(property7, false, false), + sender.ObservableForProperty(property8, false, false), + sender.ObservableForProperty(property9, false, false), + sender.ObservableForProperty(property10, false, false), + sender.ObservableForProperty(property11, false, false), + sender.ObservableForProperty(property12, false, false), + selector + ); + } /// @@ -1512,51 +1514,51 @@ public static IObservable WhenAnyThe 11 property chain to reference. This will be a expression pointing to a end property or field. /// The 12 property chain to reference. This will be a expression pointing to a end property or field. /// The selector which will determine the final value from the properties. - public static IObservable WhenAnyDynamic( - this TSender sender, - Expression property1, - Expression property2, - Expression property3, - Expression property4, - Expression property5, - Expression property6, - Expression property7, - Expression property8, - Expression property9, - Expression property10, - Expression property11, - Expression property12, - Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet> selector) - { - return Observable.CombineLatest( - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property1, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property2, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property3, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property4, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property5, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property6, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property7, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property8, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property9, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property10, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property11, false, false), - ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property12, false, false), - selector -); + public static IObservable WhenAnyDynamic( + this TSender? sender, + Expression? property1, + Expression? property2, + Expression? property3, + Expression? property4, + Expression? property5, + Expression? property6, + Expression? property7, + Expression? property8, + Expression? property9, + Expression? property10, + Expression? property11, + Expression? property12, + Func, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, IObservedChange, TRet?> selector) + { + return Observable.CombineLatest( + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property1, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property2, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property3, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property4, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property5, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property6, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property7, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property8, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property9, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property10, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property11, false, false), + ReactiveNotifyPropertyChangedMixin + .SubscribeToExpressionChain(sender, property12, false, false), + selector + ); + } } - } /// A mixin which provides support for subscribing to observable properties. public static class WhenAnyObservableMixin @@ -1564,32 +1566,32 @@ public static class WhenAnyObservableMixin /// Observe a observable which is set to a property, and automatically subscribe to the most recent emitted value. /// The object where the property chain starts. /// The first observable to observe. - public static IObservable WhenAnyObservable(this TSender sender, Expression>> obs1) + public static IObservable WhenAnyObservable(this TSender? sender, Expression?>> obs1) where TSender : class { - return sender.WhenAny(obs1, x => x.Value.EmptyIfNull()).Switch(); + return sender!.WhenAny(obs1, x => x.Value!.EmptyIfNull())!.Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. /// The object where the property chain starts. /// The 1 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 2 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, Expression>> obs1, Expression>> obs2) - where TSender : class + public static IObservable WhenAnyObservable(this TSender? sender, Expression?>> obs1, Expression?>> obs2) + where TSender : class { - return sender.WhenAny(obs1, obs2, (o1, o2) => new[] { o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull() }) - .Select(x => x.Merge()).Switch(); + return sender!.WhenAny(obs1, obs2, (o1, o2) => new[] {o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull()}) + .Select(x => x?.Merge())!.Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. /// The object where the property chain starts. /// The 1 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 2 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 3 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, Expression>> obs1, Expression>> obs2, Expression>> obs3) - where TSender : class + public static IObservable WhenAnyObservable(this TSender? sender, Expression?>> obs1, Expression?>> obs2, Expression?>> obs3) + where TSender : class { - return sender.WhenAny(obs1, obs2, obs3, (o1, o2, o3) => new[] { o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), o3.Value.EmptyIfNull() }) - .Select(x => x.Merge()).Switch(); + return sender!.WhenAny(obs1, obs2, obs3, (o1, o2, o3) => new[] {o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), o3.Value!.EmptyIfNull()}) + .Select(x => x?.Merge())!.Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. /// The object where the property chain starts. @@ -1597,11 +1599,11 @@ public static IObservable WhenAnyObservable(this TSender se /// The 2 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 3 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 4 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, Expression>> obs1, Expression>> obs2, Expression>> obs3, Expression>> obs4) - where TSender : class + public static IObservable WhenAnyObservable(this TSender? sender, Expression?>> obs1, Expression?>> obs2, Expression?>> obs3, Expression?>> obs4) + where TSender : class { - return sender.WhenAny(obs1, obs2, obs3, obs4, (o1, o2, o3, o4) => new[] { o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), o3.Value.EmptyIfNull(), o4.Value.EmptyIfNull() }) - .Select(x => x.Merge()).Switch(); + return sender!.WhenAny(obs1, obs2, obs3, obs4, (o1, o2, o3, o4) => new[] {o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), o3.Value!.EmptyIfNull(), o4.Value!.EmptyIfNull()}) + .Select(x => x?.Merge())!.Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. /// The object where the property chain starts. @@ -1610,11 +1612,11 @@ public static IObservable WhenAnyObservable(this TSender se /// The 3 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 4 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 5 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, Expression>> obs1, Expression>> obs2, Expression>> obs3, Expression>> obs4, Expression>> obs5) - where TSender : class + public static IObservable WhenAnyObservable(this TSender? sender, Expression?>> obs1, Expression?>> obs2, Expression?>> obs3, Expression?>> obs4, Expression?>> obs5) + where TSender : class { - return sender.WhenAny(obs1, obs2, obs3, obs4, obs5, (o1, o2, o3, o4, o5) => new[] { o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), o3.Value.EmptyIfNull(), o4.Value.EmptyIfNull(), o5.Value.EmptyIfNull() }) - .Select(x => x.Merge()).Switch(); + return sender!.WhenAny(obs1, obs2, obs3, obs4, obs5, (o1, o2, o3, o4, o5) => new[] {o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), o3.Value!.EmptyIfNull(), o4.Value!.EmptyIfNull(), o5.Value!.EmptyIfNull()}) + .Select(x => x?.Merge())!.Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. /// The object where the property chain starts. @@ -1624,11 +1626,11 @@ public static IObservable WhenAnyObservable(this TSender se /// The 4 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 5 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 6 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, Expression>> obs1, Expression>> obs2, Expression>> obs3, Expression>> obs4, Expression>> obs5, Expression>> obs6) - where TSender : class + public static IObservable WhenAnyObservable(this TSender? sender, Expression?>> obs1, Expression?>> obs2, Expression?>> obs3, Expression?>> obs4, Expression?>> obs5, Expression?>> obs6) + where TSender : class { - return sender.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, (o1, o2, o3, o4, o5, o6) => new[] { o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), o3.Value.EmptyIfNull(), o4.Value.EmptyIfNull(), o5.Value.EmptyIfNull(), o6.Value.EmptyIfNull() }) - .Select(x => x.Merge()).Switch(); + return sender!.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, (o1, o2, o3, o4, o5, o6) => new[] {o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), o3.Value!.EmptyIfNull(), o4.Value!.EmptyIfNull(), o5.Value!.EmptyIfNull(), o6.Value!.EmptyIfNull()}) + .Select(x => x?.Merge())!.Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. /// The object where the property chain starts. @@ -1639,11 +1641,11 @@ public static IObservable WhenAnyObservable(this TSender se /// The 5 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 6 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 7 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, Expression>> obs1, Expression>> obs2, Expression>> obs3, Expression>> obs4, Expression>> obs5, Expression>> obs6, Expression>> obs7) - where TSender : class + public static IObservable WhenAnyObservable(this TSender? sender, Expression?>> obs1, Expression?>> obs2, Expression?>> obs3, Expression?>> obs4, Expression?>> obs5, Expression?>> obs6, Expression?>> obs7) + where TSender : class { - return sender.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, (o1, o2, o3, o4, o5, o6, o7) => new[] { o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), o3.Value.EmptyIfNull(), o4.Value.EmptyIfNull(), o5.Value.EmptyIfNull(), o6.Value.EmptyIfNull(), o7.Value.EmptyIfNull() }) - .Select(x => x.Merge()).Switch(); + return sender!.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, (o1, o2, o3, o4, o5, o6, o7) => new[] {o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), o3.Value!.EmptyIfNull(), o4.Value!.EmptyIfNull(), o5.Value!.EmptyIfNull(), o6.Value!.EmptyIfNull(), o7.Value!.EmptyIfNull()}) + .Select(x => x?.Merge())!.Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. /// The object where the property chain starts. @@ -1655,11 +1657,11 @@ public static IObservable WhenAnyObservable(this TSender se /// The 6 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 7 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 8 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, Expression>> obs1, Expression>> obs2, Expression>> obs3, Expression>> obs4, Expression>> obs5, Expression>> obs6, Expression>> obs7, Expression>> obs8) - where TSender : class + public static IObservable WhenAnyObservable(this TSender? sender, Expression?>> obs1, Expression?>> obs2, Expression?>> obs3, Expression?>> obs4, Expression?>> obs5, Expression?>> obs6, Expression?>> obs7, Expression?>> obs8) + where TSender : class { - return sender.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, obs8, (o1, o2, o3, o4, o5, o6, o7, o8) => new[] { o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), o3.Value.EmptyIfNull(), o4.Value.EmptyIfNull(), o5.Value.EmptyIfNull(), o6.Value.EmptyIfNull(), o7.Value.EmptyIfNull(), o8.Value.EmptyIfNull() }) - .Select(x => x.Merge()).Switch(); + return sender!.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, obs8, (o1, o2, o3, o4, o5, o6, o7, o8) => new[] {o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), o3.Value!.EmptyIfNull(), o4.Value!.EmptyIfNull(), o5.Value!.EmptyIfNull(), o6.Value!.EmptyIfNull(), o7.Value!.EmptyIfNull(), o8.Value!.EmptyIfNull()}) + .Select(x => x?.Merge())!.Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. /// The object where the property chain starts. @@ -1672,11 +1674,11 @@ public static IObservable WhenAnyObservable(this TSender se /// The 7 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 8 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 9 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, Expression>> obs1, Expression>> obs2, Expression>> obs3, Expression>> obs4, Expression>> obs5, Expression>> obs6, Expression>> obs7, Expression>> obs8, Expression>> obs9) - where TSender : class + public static IObservable WhenAnyObservable(this TSender? sender, Expression?>> obs1, Expression?>> obs2, Expression?>> obs3, Expression?>> obs4, Expression?>> obs5, Expression?>> obs6, Expression?>> obs7, Expression?>> obs8, Expression?>> obs9) + where TSender : class { - return sender.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, obs8, obs9, (o1, o2, o3, o4, o5, o6, o7, o8, o9) => new[] { o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), o3.Value.EmptyIfNull(), o4.Value.EmptyIfNull(), o5.Value.EmptyIfNull(), o6.Value.EmptyIfNull(), o7.Value.EmptyIfNull(), o8.Value.EmptyIfNull(), o9.Value.EmptyIfNull() }) - .Select(x => x.Merge()).Switch(); + return sender!.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, obs8, obs9, (o1, o2, o3, o4, o5, o6, o7, o8, o9) => new[] {o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), o3.Value!.EmptyIfNull(), o4.Value!.EmptyIfNull(), o5.Value!.EmptyIfNull(), o6.Value!.EmptyIfNull(), o7.Value!.EmptyIfNull(), o8.Value!.EmptyIfNull(), o9.Value!.EmptyIfNull()}) + .Select(x => x?.Merge())!.Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. /// The object where the property chain starts. @@ -1690,11 +1692,11 @@ public static IObservable WhenAnyObservable(this TSender se /// The 8 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 9 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 10 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, Expression>> obs1, Expression>> obs2, Expression>> obs3, Expression>> obs4, Expression>> obs5, Expression>> obs6, Expression>> obs7, Expression>> obs8, Expression>> obs9, Expression>> obs10) - where TSender : class + public static IObservable WhenAnyObservable(this TSender? sender, Expression?>> obs1, Expression?>> obs2, Expression?>> obs3, Expression?>> obs4, Expression?>> obs5, Expression?>> obs6, Expression?>> obs7, Expression?>> obs8, Expression?>> obs9, Expression?>> obs10) + where TSender : class { - return sender.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, obs8, obs9, obs10, (o1, o2, o3, o4, o5, o6, o7, o8, o9, o10) => new[] { o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), o3.Value.EmptyIfNull(), o4.Value.EmptyIfNull(), o5.Value.EmptyIfNull(), o6.Value.EmptyIfNull(), o7.Value.EmptyIfNull(), o8.Value.EmptyIfNull(), o9.Value.EmptyIfNull(), o10.Value.EmptyIfNull() }) - .Select(x => x.Merge()).Switch(); + return sender!.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, obs8, obs9, obs10, (o1, o2, o3, o4, o5, o6, o7, o8, o9, o10) => new[] {o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), o3.Value!.EmptyIfNull(), o4.Value!.EmptyIfNull(), o5.Value!.EmptyIfNull(), o6.Value!.EmptyIfNull(), o7.Value!.EmptyIfNull(), o8.Value!.EmptyIfNull(), o9.Value!.EmptyIfNull(), o10.Value!.EmptyIfNull()}) + .Select(x => x?.Merge())!.Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. /// The object where the property chain starts. @@ -1709,11 +1711,11 @@ public static IObservable WhenAnyObservable(this TSender se /// The 9 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 10 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 11 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, Expression>> obs1, Expression>> obs2, Expression>> obs3, Expression>> obs4, Expression>> obs5, Expression>> obs6, Expression>> obs7, Expression>> obs8, Expression>> obs9, Expression>> obs10, Expression>> obs11) - where TSender : class + public static IObservable WhenAnyObservable(this TSender? sender, Expression?>> obs1, Expression?>> obs2, Expression?>> obs3, Expression?>> obs4, Expression?>> obs5, Expression?>> obs6, Expression?>> obs7, Expression?>> obs8, Expression?>> obs9, Expression?>> obs10, Expression?>> obs11) + where TSender : class { - return sender.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, obs8, obs9, obs10, obs11, (o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11) => new[] { o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), o3.Value.EmptyIfNull(), o4.Value.EmptyIfNull(), o5.Value.EmptyIfNull(), o6.Value.EmptyIfNull(), o7.Value.EmptyIfNull(), o8.Value.EmptyIfNull(), o9.Value.EmptyIfNull(), o10.Value.EmptyIfNull(), o11.Value.EmptyIfNull() }) - .Select(x => x.Merge()).Switch(); + return sender!.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, obs8, obs9, obs10, obs11, (o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11) => new[] {o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), o3.Value!.EmptyIfNull(), o4.Value!.EmptyIfNull(), o5.Value!.EmptyIfNull(), o6.Value!.EmptyIfNull(), o7.Value!.EmptyIfNull(), o8.Value!.EmptyIfNull(), o9.Value!.EmptyIfNull(), o10.Value!.EmptyIfNull(), o11.Value!.EmptyIfNull()}) + .Select(x => x?.Merge())!.Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. /// The object where the property chain starts. @@ -1729,11 +1731,11 @@ public static IObservable WhenAnyObservable(this TSender se /// The 10 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 11 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. /// The 12 property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, Expression>> obs1, Expression>> obs2, Expression>> obs3, Expression>> obs4, Expression>> obs5, Expression>> obs6, Expression>> obs7, Expression>> obs8, Expression>> obs9, Expression>> obs10, Expression>> obs11, Expression>> obs12) - where TSender : class + public static IObservable WhenAnyObservable(this TSender? sender, Expression?>> obs1, Expression?>> obs2, Expression?>> obs3, Expression?>> obs4, Expression?>> obs5, Expression?>> obs6, Expression?>> obs7, Expression?>> obs8, Expression?>> obs9, Expression?>> obs10, Expression?>> obs11, Expression?>> obs12) + where TSender : class { - return sender.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, obs8, obs9, obs10, obs11, obs12, (o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11, o12) => new[] { o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), o3.Value.EmptyIfNull(), o4.Value.EmptyIfNull(), o5.Value.EmptyIfNull(), o6.Value.EmptyIfNull(), o7.Value.EmptyIfNull(), o8.Value.EmptyIfNull(), o9.Value.EmptyIfNull(), o10.Value.EmptyIfNull(), o11.Value.EmptyIfNull(), o12.Value.EmptyIfNull() }) - .Select(x => x.Merge()).Switch(); + return sender!.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, obs8, obs9, obs10, obs11, obs12, (o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11, o12) => new[] {o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), o3.Value!.EmptyIfNull(), o4.Value!.EmptyIfNull(), o5.Value!.EmptyIfNull(), o6.Value!.EmptyIfNull(), o7.Value!.EmptyIfNull(), o8.Value!.EmptyIfNull(), o9.Value!.EmptyIfNull(), o10.Value!.EmptyIfNull(), o11.Value!.EmptyIfNull(), o12.Value!.EmptyIfNull()}) + .Select(x => x?.Merge())!.Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. @@ -1741,13 +1743,13 @@ public static IObservable WhenAnyObservable(this TSender se /// The 1 property chain to reference. /// The 2 property chain to reference. /// The selector which will determine the final value from the properties. This must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, - Expression>> obs1, - Expression>> obs2, - Func selector) + public static IObservable WhenAnyObservable(this TSender? sender, + Expression?>> obs1, + Expression?>> obs2, + Func selector) where TSender : class { - return sender.WhenAny(obs1, obs2, (o1, o2) => Observable.CombineLatest(o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), selector)) + return sender!.WhenAny(obs1, obs2, (o1, o2) => Observable.CombineLatest(o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), selector))! .Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. @@ -1756,14 +1758,14 @@ public static IObservable WhenAnyObservable(this TS /// The 2 property chain to reference. /// The 3 property chain to reference. /// The selector which will determine the final value from the properties. This must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, - Expression>> obs1, - Expression>> obs2, - Expression>> obs3, - Func selector) + public static IObservable WhenAnyObservable(this TSender? sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Func selector) where TSender : class { - return sender.WhenAny(obs1, obs2, obs3, (o1, o2, o3) => Observable.CombineLatest(o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), o3.Value.EmptyIfNull(), selector)) + return sender!.WhenAny(obs1, obs2, obs3, (o1, o2, o3) => Observable.CombineLatest(o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), o3.Value!.EmptyIfNull(), selector))! .Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. @@ -1773,15 +1775,15 @@ public static IObservable WhenAnyObservable(thi /// The 3 property chain to reference. /// The 4 property chain to reference. /// The selector which will determine the final value from the properties. This must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, - Expression>> obs1, - Expression>> obs2, - Expression>> obs3, - Expression>> obs4, - Func selector) + public static IObservable WhenAnyObservable(this TSender? sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Func selector) where TSender : class { - return sender.WhenAny(obs1, obs2, obs3, obs4, (o1, o2, o3, o4) => Observable.CombineLatest(o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), o3.Value.EmptyIfNull(), o4.Value.EmptyIfNull(), selector)) + return sender!.WhenAny(obs1, obs2, obs3, obs4, (o1, o2, o3, o4) => Observable.CombineLatest(o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), o3.Value!.EmptyIfNull(), o4.Value!.EmptyIfNull(), selector))! .Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. @@ -1792,16 +1794,16 @@ public static IObservable WhenAnyObservable /// The 4 property chain to reference. /// The 5 property chain to reference. /// The selector which will determine the final value from the properties. This must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, - Expression>> obs1, - Expression>> obs2, - Expression>> obs3, - Expression>> obs4, - Expression>> obs5, - Func selector) + public static IObservable WhenAnyObservable(this TSender? sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Func selector) where TSender : class { - return sender.WhenAny(obs1, obs2, obs3, obs4, obs5, (o1, o2, o3, o4, o5) => Observable.CombineLatest(o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), o3.Value.EmptyIfNull(), o4.Value.EmptyIfNull(), o5.Value.EmptyIfNull(), selector)) + return sender!.WhenAny(obs1, obs2, obs3, obs4, obs5, (o1, o2, o3, o4, o5) => Observable.CombineLatest(o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), o3.Value!.EmptyIfNull(), o4.Value!.EmptyIfNull(), o5.Value!.EmptyIfNull(), selector))! .Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. @@ -1813,17 +1815,17 @@ public static IObservable WhenAnyObservableThe 5 property chain to reference. /// The 6 property chain to reference. /// The selector which will determine the final value from the properties. This must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, - Expression>> obs1, - Expression>> obs2, - Expression>> obs3, - Expression>> obs4, - Expression>> obs5, - Expression>> obs6, - Func selector) + public static IObservable WhenAnyObservable(this TSender? sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Func selector) where TSender : class { - return sender.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, (o1, o2, o3, o4, o5, o6) => Observable.CombineLatest(o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), o3.Value.EmptyIfNull(), o4.Value.EmptyIfNull(), o5.Value.EmptyIfNull(), o6.Value.EmptyIfNull(), selector)) + return sender!.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, (o1, o2, o3, o4, o5, o6) => Observable.CombineLatest(o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), o3.Value!.EmptyIfNull(), o4.Value!.EmptyIfNull(), o5.Value!.EmptyIfNull(), o6.Value!.EmptyIfNull(), selector))! .Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. @@ -1836,18 +1838,18 @@ public static IObservable WhenAnyObservableThe 6 property chain to reference. /// The 7 property chain to reference. /// The selector which will determine the final value from the properties. This must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, - Expression>> obs1, - Expression>> obs2, - Expression>> obs3, - Expression>> obs4, - Expression>> obs5, - Expression>> obs6, - Expression>> obs7, - Func selector) + public static IObservable WhenAnyObservable(this TSender? sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Func selector) where TSender : class { - return sender.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, (o1, o2, o3, o4, o5, o6, o7) => Observable.CombineLatest(o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), o3.Value.EmptyIfNull(), o4.Value.EmptyIfNull(), o5.Value.EmptyIfNull(), o6.Value.EmptyIfNull(), o7.Value.EmptyIfNull(), selector)) + return sender!.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, (o1, o2, o3, o4, o5, o6, o7) => Observable.CombineLatest(o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), o3.Value!.EmptyIfNull(), o4.Value!.EmptyIfNull(), o5.Value!.EmptyIfNull(), o6.Value!.EmptyIfNull(), o7.Value!.EmptyIfNull(), selector))! .Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. @@ -1861,19 +1863,19 @@ public static IObservable WhenAnyObservableThe 7 property chain to reference. /// The 8 property chain to reference. /// The selector which will determine the final value from the properties. This must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, - Expression>> obs1, - Expression>> obs2, - Expression>> obs3, - Expression>> obs4, - Expression>> obs5, - Expression>> obs6, - Expression>> obs7, - Expression>> obs8, - Func selector) + public static IObservable WhenAnyObservable(this TSender? sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Func selector) where TSender : class { - return sender.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, obs8, (o1, o2, o3, o4, o5, o6, o7, o8) => Observable.CombineLatest(o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), o3.Value.EmptyIfNull(), o4.Value.EmptyIfNull(), o5.Value.EmptyIfNull(), o6.Value.EmptyIfNull(), o7.Value.EmptyIfNull(), o8.Value.EmptyIfNull(), selector)) + return sender!.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, obs8, (o1, o2, o3, o4, o5, o6, o7, o8) => Observable.CombineLatest(o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), o3.Value!.EmptyIfNull(), o4.Value!.EmptyIfNull(), o5.Value!.EmptyIfNull(), o6.Value!.EmptyIfNull(), o7.Value!.EmptyIfNull(), o8.Value!.EmptyIfNull(), selector))! .Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. @@ -1888,20 +1890,20 @@ public static IObservable WhenAnyObservableThe 8 property chain to reference. /// The 9 property chain to reference. /// The selector which will determine the final value from the properties. This must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, - Expression>> obs1, - Expression>> obs2, - Expression>> obs3, - Expression>> obs4, - Expression>> obs5, - Expression>> obs6, - Expression>> obs7, - Expression>> obs8, - Expression>> obs9, - Func selector) + public static IObservable WhenAnyObservable(this TSender? sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Expression?>> obs9, + Func selector) where TSender : class { - return sender.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, obs8, obs9, (o1, o2, o3, o4, o5, o6, o7, o8, o9) => Observable.CombineLatest(o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), o3.Value.EmptyIfNull(), o4.Value.EmptyIfNull(), o5.Value.EmptyIfNull(), o6.Value.EmptyIfNull(), o7.Value.EmptyIfNull(), o8.Value.EmptyIfNull(), o9.Value.EmptyIfNull(), selector)) + return sender!.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, obs8, obs9, (o1, o2, o3, o4, o5, o6, o7, o8, o9) => Observable.CombineLatest(o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), o3.Value!.EmptyIfNull(), o4.Value!.EmptyIfNull(), o5.Value!.EmptyIfNull(), o6.Value!.EmptyIfNull(), o7.Value!.EmptyIfNull(), o8.Value!.EmptyIfNull(), o9.Value!.EmptyIfNull(), selector))! .Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. @@ -1917,21 +1919,21 @@ public static IObservable WhenAnyObservableThe 9 property chain to reference. /// The 10 property chain to reference. /// The selector which will determine the final value from the properties. This must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, - Expression>> obs1, - Expression>> obs2, - Expression>> obs3, - Expression>> obs4, - Expression>> obs5, - Expression>> obs6, - Expression>> obs7, - Expression>> obs8, - Expression>> obs9, - Expression>> obs10, - Func selector) + public static IObservable WhenAnyObservable(this TSender? sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Expression?>> obs9, + Expression?>> obs10, + Func selector) where TSender : class { - return sender.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, obs8, obs9, obs10, (o1, o2, o3, o4, o5, o6, o7, o8, o9, o10) => Observable.CombineLatest(o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), o3.Value.EmptyIfNull(), o4.Value.EmptyIfNull(), o5.Value.EmptyIfNull(), o6.Value.EmptyIfNull(), o7.Value.EmptyIfNull(), o8.Value.EmptyIfNull(), o9.Value.EmptyIfNull(), o10.Value.EmptyIfNull(), selector)) + return sender!.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, obs8, obs9, obs10, (o1, o2, o3, o4, o5, o6, o7, o8, o9, o10) => Observable.CombineLatest(o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), o3.Value!.EmptyIfNull(), o4.Value!.EmptyIfNull(), o5.Value!.EmptyIfNull(), o6.Value!.EmptyIfNull(), o7.Value!.EmptyIfNull(), o8.Value!.EmptyIfNull(), o9.Value!.EmptyIfNull(), o10.Value!.EmptyIfNull(), selector))! .Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. @@ -1948,22 +1950,22 @@ public static IObservable WhenAnyObservableThe 10 property chain to reference. /// The 11 property chain to reference. /// The selector which will determine the final value from the properties. This must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, - Expression>> obs1, - Expression>> obs2, - Expression>> obs3, - Expression>> obs4, - Expression>> obs5, - Expression>> obs6, - Expression>> obs7, - Expression>> obs8, - Expression>> obs9, - Expression>> obs10, - Expression>> obs11, - Func selector) + public static IObservable WhenAnyObservable(this TSender? sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Expression?>> obs9, + Expression?>> obs10, + Expression?>> obs11, + Func selector) where TSender : class { - return sender.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, obs8, obs9, obs10, obs11, (o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11) => Observable.CombineLatest(o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), o3.Value.EmptyIfNull(), o4.Value.EmptyIfNull(), o5.Value.EmptyIfNull(), o6.Value.EmptyIfNull(), o7.Value.EmptyIfNull(), o8.Value.EmptyIfNull(), o9.Value.EmptyIfNull(), o10.Value.EmptyIfNull(), o11.Value.EmptyIfNull(), selector)) + return sender!.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, obs8, obs9, obs10, obs11, (o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11) => Observable.CombineLatest(o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), o3.Value!.EmptyIfNull(), o4.Value!.EmptyIfNull(), o5.Value!.EmptyIfNull(), o6.Value!.EmptyIfNull(), o7.Value!.EmptyIfNull(), o8.Value!.EmptyIfNull(), o9.Value!.EmptyIfNull(), o10.Value!.EmptyIfNull(), o11.Value!.EmptyIfNull(), selector))! .Switch(); } /// Monitor a property that is an observable, and subscribe to the most recent emitted value. @@ -1981,26 +1983,26 @@ public static IObservable WhenAnyObservableThe 11 property chain to reference. /// The 12 property chain to reference. /// The selector which will determine the final value from the properties. This must be an observable. - public static IObservable WhenAnyObservable(this TSender sender, - Expression>> obs1, - Expression>> obs2, - Expression>> obs3, - Expression>> obs4, - Expression>> obs5, - Expression>> obs6, - Expression>> obs7, - Expression>> obs8, - Expression>> obs9, - Expression>> obs10, - Expression>> obs11, - Expression>> obs12, - Func selector) + public static IObservable WhenAnyObservable(this TSender? sender, + Expression?>> obs1, + Expression?>> obs2, + Expression?>> obs3, + Expression?>> obs4, + Expression?>> obs5, + Expression?>> obs6, + Expression?>> obs7, + Expression?>> obs8, + Expression?>> obs9, + Expression?>> obs10, + Expression?>> obs11, + Expression?>> obs12, + Func selector) where TSender : class { - return sender.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, obs8, obs9, obs10, obs11, obs12, (o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11, o12) => Observable.CombineLatest(o1.Value.EmptyIfNull(), o2.Value.EmptyIfNull(), o3.Value.EmptyIfNull(), o4.Value.EmptyIfNull(), o5.Value.EmptyIfNull(), o6.Value.EmptyIfNull(), o7.Value.EmptyIfNull(), o8.Value.EmptyIfNull(), o9.Value.EmptyIfNull(), o10.Value.EmptyIfNull(), o11.Value.EmptyIfNull(), o12.Value.EmptyIfNull(), selector)) + return sender!.WhenAny(obs1, obs2, obs3, obs4, obs5, obs6, obs7, obs8, obs9, obs10, obs11, obs12, (o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11, o12) => Observable.CombineLatest(o1.Value!.EmptyIfNull(), o2.Value!.EmptyIfNull(), o3.Value!.EmptyIfNull(), o4.Value!.EmptyIfNull(), o5.Value!.EmptyIfNull(), o6.Value!.EmptyIfNull(), o7.Value!.EmptyIfNull(), o8.Value!.EmptyIfNull(), o9.Value!.EmptyIfNull(), o10.Value!.EmptyIfNull(), o11.Value!.EmptyIfNull(), o12.Value!.EmptyIfNull(), selector))! .Switch(); } - } +} internal static class ObservableExtensions { diff --git a/src/ReactiveUI/VariadicTemplates.tt b/src/ReactiveUI/VariadicTemplates.tt index 4745aa02d9..57c87ab51d 100644 --- a/src/ReactiveUI/VariadicTemplates.tt +++ b/src/ReactiveUI/VariadicTemplates.tt @@ -6,6 +6,8 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +#nullable enable + //------------------------------------------------------------------------------ // // This code was generated from a template. @@ -42,20 +44,21 @@ namespace ReactiveUI /// /// The object where the property chain starts. /// The first property chain to reference. This will be a expression pointing to a end property or field. - public static IObservable WhenAnyValue( - this TSender sender, - Expression> property1) + public static IObservable WhenAnyValue( + this TSender? sender, + Expression> property1) { - return sender.WhenAny(property1, (IObservedChange c1) => c1.Value); + return sender.WhenAny(property1, (IObservedChange c1) => c1.Value); } <# for(int length=1; length <= maxFuncLength; length++) { #> - <# var templParams = Enumerable.Range(1, length).Select(x => "T" + x.ToString()); #> + <# var templParams = Enumerable.Range(1, length).Select(x => "T" + x.ToString() + "?"); #> + <# var templParamsDec = Enumerable.Range(1, length).Select(x => "T" + x.ToString()); #> <# string selectorTypeParams = String.Join(", ", templParams.Select(x => String.Format("IObservedChange", x))); #> <# string valuePropertyParams = String.Join(", ", Enumerable.Range(1, length).Select(x => String.Format("property{0}", x))); #> <# string valueSelectorParams = String.Join(", ", Enumerable.Range(1, length).Select(x => "c" + x)); #> <# string valueSelectorArgs = String.Join(", ", Enumerable.Range(1, length).Select(x => String.Format("c{0}.Value", x))); #> - <# string dynamicSelectorTypeParams = String.Join(", ", templParams.Select(x => "IObservedChange")); #> + <# string dynamicSelectorTypeParams = String.Join(", ", templParams.Select(x => "IObservedChange")); #> <# string selectorCall = "selector(" + String.Join(", ", Enumerable.Range(1, length).Select(x => "islot" + x.ToString())) + ")"; #> <# if (length != 1 && length <= 7) { #>/// @@ -68,10 +71,10 @@ namespace ReactiveUI /// The object where the property chain starts. <# for(int i=1; i <= length; i++) { #> /// The <#=i#> property chain to reference. This will be a expression pointing to a end property or field. - <# } #>public static IObservable<(<#= String.Join(",", templParams) #>)> WhenAnyValue>( - this TSender sender, + <# } #>public static IObservable<(<#= String.Join(",", templParams) #>)> WhenAnyValue>( + this TSender? sender, <# for(int i=1; i <= length; i++) { #> - Expression>> property<#=i#><# if (i != length) { #>,<# } #> + Expression?>> property<#=i#><# if (i != length) { #>,<# } #> <# } #>) { @@ -92,10 +95,10 @@ namespace ReactiveUI <# for(int i=1; i <= length; i++) { #> /// The <#=i#> property chain to reference. This will be a expression pointing to a end property or field. <# } #>/// The selector which will determine the final value from the properties. - public static IObservable WhenAnyValue>( - this TSender sender, + public static IObservable WhenAnyValue>( + this TSender? sender, <# for(int i=1; i <= length; i++) { #> - Expression>> property<#=i#>, + Expression?>> property<#=i#>, <# } #> Func<<#= String.Join(",", templParams) #>, TRet> selector) { @@ -115,12 +118,12 @@ namespace ReactiveUI <# for(int i=1; i <= length; i++) { #> /// The <#=i#> property chain to reference. This will be a expression pointing to a end property or field. <# } #>/// The selector which will determine the final value from the properties. - public static IObservable WhenAny>( - this TSender sender, + public static IObservable WhenAny>( + this TSender? sender, <# for(int i=1; i <= length; i++) { #> - Expression>> property<#=i#>, + Expression?>> property<#=i#>, <# } #> - Func<<#= selectorTypeParams #>, TRet> selector) + Func<<#= selectorTypeParams #>, TRet?> selector) { <# if (length == 1){ #> return sender.ObservableForProperty(property<#=1#>, false, false).Select(selector); @@ -146,21 +149,21 @@ namespace ReactiveUI <# for(int i=1; i <= length; i++) { #> /// The <#=i#> property chain to reference. This will be a expression pointing to a end property or field. <# } #>/// The selector which will determine the final value from the properties. - public static IObservable WhenAnyDynamic( - this TSender sender, + public static IObservable WhenAnyDynamic( + this TSender? sender, <# for(int i=1; i <= length; i++) { #> - Expression property<#=i#>, + Expression? property<#=i#>, <# } #> - Func<<#= dynamicSelectorTypeParams #>, TRet> selector) + Func<<#= dynamicSelectorTypeParams #>, TRet?> selector) { <# if (length == 1){ #> return ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property<#=1#>, false, false).Select(selector); + .SubscribeToExpressionChain(sender, property<#=1#>, false, false).Select(selector); <# }else{ #> return Observable.CombineLatest( <# for(int i=1; i <= length; i++) { #> ReactiveNotifyPropertyChangedMixin - .SubscribeToExpressionChain(sender, property<#=i#>, false, false), + .SubscribeToExpressionChain(sender, property<#=i#>, false, false), <# } #> selector ); @@ -175,10 +178,10 @@ namespace ReactiveUI /// Observe a observable which is set to a property, and automatically subscribe to the most recent emitted value. /// The object where the property chain starts. /// The first observable to observe. - public static IObservable WhenAnyObservable(this TSender sender, Expression>> obs1) + public static IObservable WhenAnyObservable(this TSender? sender, Expression?>> obs1) where TSender : class { - return sender.WhenAny(obs1, x => x.Value.EmptyIfNull()).Switch(); + return sender!.WhenAny(obs1, x => x.Value!.EmptyIfNull())!.Switch(); } <# for(int length=2; length <= maxFuncLength; length++) { #> @@ -187,14 +190,14 @@ namespace ReactiveUI <# for(int i=1; i <= length; i++) { #> /// The <#=i#> property chain to reference which ends with an observable. This will be a expression pointing to a end property or field which must be an observable. <# } #> -<# string paramsStr = String.Join(", ", Enumerable.Range(1, length).Select(x => "Expression>> obs" + x.ToString())); #> +<# string paramsStr = String.Join(", ", Enumerable.Range(1, length).Select(x => "Expression?>> obs" + x.ToString())); #> <# string varsStr = String.Join(", ", Enumerable.Range(1, length).Select(x => "obs" + x.ToString())); #> -<# string valsStr = String.Join(", ", Enumerable.Range(1, length).Select(x => "o" + x.ToString() + ".Value.EmptyIfNull()")); #> - public static IObservable WhenAnyObservable(this TSender sender, <#= paramsStr #>) +<# string valsStr = String.Join(", ", Enumerable.Range(1, length).Select(x => "o" + x.ToString() + ".Value!.EmptyIfNull()")); #> + public static IObservable WhenAnyObservable(this TSender? sender, <#= paramsStr #>) where TSender : class { - return sender.WhenAny(<#= varsStr #>, (<#=varsStr.Replace("obs", "o")#>) => new[] {<#= valsStr #>}) - .Select(x => x.Merge()).Switch(); + return sender!.WhenAny(<#= varsStr #>, (<#=varsStr.Replace("obs", "o")#>) => new[] {<#= valsStr #>}) + .Select(x => x?.Merge())!.Switch(); } <# } #> @@ -204,18 +207,19 @@ namespace ReactiveUI <# for(int i=1; i <= length; i++) { #> /// The <#=i#> property chain to reference. <# } #>/// The selector which will determine the final value from the properties. This must be an observable. -<# var templParams = Enumerable.Range(1, length).Select(x => "T" + x.ToString()); #> +<# var templParams = Enumerable.Range(1, length).Select(x => "T" + x.ToString() + "?"); #> +<# var templParamsDec = Enumerable.Range(1, length).Select(x => "T" + x.ToString()); #> <# string varsStr = String.Join(", ", Enumerable.Range(1, length).Select(x => "obs" + x.ToString())); #> -<# string valsStr = String.Join(", ", Enumerable.Range(1, length).Select(x => "o" + x.ToString() + ".Value.EmptyIfNull()")); #> +<# string valsStr = String.Join(", ", Enumerable.Range(1, length).Select(x => "o" + x.ToString() + ".Value!.EmptyIfNull()")); #> <# string selectorTypeParams = String.Join(", ", templParams); #> - public static IObservable WhenAnyObservable>(this TSender sender, + public static IObservable WhenAnyObservable>(this TSender? sender, <# for(int i=1; i <= length; i++) { #> - Expression>>> obs<#=i#>, + Expression>?>> obs<#=i#>, <# } #> - Func<<#= selectorTypeParams #>, TRet> selector) + Func<<#= selectorTypeParams #>, TRet?> selector) where TSender : class { - return sender.WhenAny(<#= varsStr #>, (<#=varsStr.Replace("obs", "o")#>) => Observable.CombineLatest(<#= valsStr #>, selector)) + return sender!.WhenAny(<#= varsStr #>, (<#=varsStr.Replace("obs", "o")#>) => Observable.CombineLatest(<#= valsStr #>, selector))! .Switch(); } <# } #>