diff --git a/CodeGen/Generators/UnitsNetGen/QuantityGenerator.cs b/CodeGen/Generators/UnitsNetGen/QuantityGenerator.cs index 7f304b59d3..c4b7825a47 100644 --- a/CodeGen/Generators/UnitsNetGen/QuantityGenerator.cs +++ b/CodeGen/Generators/UnitsNetGen/QuantityGenerator.cs @@ -37,6 +37,7 @@ public string Generate() Writer.WL(GeneratedFileHeader); Writer.WL(@" using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -761,7 +762,7 @@ private void GenerateEqualityAndComparison() /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete(""Consider using Equals(Angle, {_valueType}, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance."")] - public override bool Equals(object obj) + public override bool Equals(object? obj) {{ if (obj is null || !(obj is {_quantity.Name} otherQuantity)) return false; @@ -793,7 +794,7 @@ public bool Equals({_quantity.Name} other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) {{ if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is {_quantity.Name} otherQuantity)) throw new ArgumentException(""Expected type {_quantity.Name}."", nameof(obj)); @@ -995,7 +996,7 @@ double IQuantity.As(Enum unit) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit({_quantity.Name}Unit unit, out {_quantity.Name}? converted) + private bool TryToUnit({_quantity.Name}Unit unit, [NotNullWhen(true)] out {_quantity.Name}? converted) {{ if (Unit == unit) {{ @@ -1003,7 +1004,7 @@ private bool TryToUnit({_quantity.Name}Unit unit, out {_quantity.Name}? converte return true; }} - converted = (Unit, unit) switch + {_quantity.Name}? convertedOrNull = (Unit, unit) switch {{ // {_quantity.Name}Unit -> BaseUnit"); @@ -1031,10 +1032,17 @@ private bool TryToUnit({_quantity.Name}Unit unit, out {_quantity.Name}? converte Writer.WL(); Writer.WL($@" - _ => null! + _ => null }}; - return converted is not null; + if (convertedOrNull is null) + {{ + converted = default; + return false; + }} + + converted = convertedOrNull.Value; + return true; }} /// @@ -1104,7 +1112,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) {{ return ToString(format, CultureInfo.CurrentCulture); }} @@ -1116,7 +1124,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) {{ return QuantityFormatter.Format<{_unitEnumName}>(this, format, provider); }} @@ -1127,7 +1135,7 @@ public string ToString(string format, IFormatProvider? provider) private void GenerateIConvertibleMethods() { - Writer.WL($@" + Writer.WL($@" #region IConvertible Methods TypeCode IConvertible.GetTypeCode() @@ -1135,67 +1143,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; }} - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) {{ throw new InvalidCastException($""Converting {{typeof({_quantity.Name})}} to bool is not supported.""); }} - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) {{ return Convert.ToByte(_value); }} - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) {{ throw new InvalidCastException($""Converting {{typeof({_quantity.Name})}} to char is not supported.""); }} - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) {{ throw new InvalidCastException($""Converting {{typeof({_quantity.Name})}} to DateTime is not supported.""); }} - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) {{ return Convert.ToDecimal(_value); }} - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) {{ return Convert.ToDouble(_value); }} - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) {{ return Convert.ToInt16(_value); }} - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) {{ return Convert.ToInt32(_value); }} - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) {{ return Convert.ToInt64(_value); }} - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) {{ return Convert.ToSByte(_value); }} - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) {{ return Convert.ToSingle(_value); }} - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) {{ return ToString(""g"", provider); }} - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) {{ if (conversionType == typeof({_quantity.Name})) return this; @@ -1209,17 +1217,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($""Converting {{typeof({_quantity.Name})}} to {{conversionType}} is not supported.""); }} - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) {{ return Convert.ToUInt16(_value); }} - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) {{ return Convert.ToUInt32(_value); }} - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) {{ return Convert.ToUInt64(_value); }} diff --git a/CodeGen/Generators/UnitsNetGen/StaticQuantityGenerator.cs b/CodeGen/Generators/UnitsNetGen/StaticQuantityGenerator.cs index 2d7af1ba4f..4893cc3a6b 100644 --- a/CodeGen/Generators/UnitsNetGen/StaticQuantityGenerator.cs +++ b/CodeGen/Generators/UnitsNetGen/StaticQuantityGenerator.cs @@ -20,6 +20,7 @@ public string Generate() using System.Globalization; using UnitsNet.Units; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; #nullable enable @@ -70,7 +71,7 @@ public static IQuantity FromQuantityInfo(QuantityInfo quantityInfo, QuantityValu /// Unit enum value. /// The resulting quantity if successful, otherwise default. /// True if successful with assigned the value, otherwise false. - public static bool TryFrom(QuantityValue value, Enum unit, out IQuantity? quantity) + public static bool TryFrom(QuantityValue value, Enum unit, [NotNullWhen(true)] out IQuantity? quantity) { switch (unit) {"); @@ -102,7 +103,7 @@ public static bool TryFrom(QuantityValue value, Enum unit, out IQuantity? quanti /// Quantity string representation, such as ""1.5 kg"". Must be compatible with given quantity type. /// The resulting quantity if successful, otherwise default. /// The parsed quantity. - public static bool TryParse(IFormatProvider? formatProvider, Type quantityType, string quantityString, out IQuantity? quantity) + public static bool TryParse(IFormatProvider? formatProvider, Type quantityType, string quantityString, [NotNullWhen(true)] out IQuantity? quantity) { quantity = default(IQuantity); diff --git a/Directory.Build.props b/Directory.Build.props index 3d30cfaa34..59cfd13c48 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -2,9 +2,9 @@ - $(MSBuildThisFileDirectory)Artifacts/$(MSBuildProjectName) + $(MSBuildThisFileDirectory)Artifacts/$(MSBuildProjectName) - $(MSBuildThisFileDirectory)Artifacts/UnitsNet.NanoFramework/$(MSBuildProjectName) + $(MSBuildThisFileDirectory)Artifacts/UnitsNet.NanoFramework/$(MSBuildProjectName) @@ -17,6 +17,12 @@ true + 612,618 + + + + + \ No newline at end of file diff --git a/NullableAttributes.cs b/NullableAttributes.cs new file mode 100644 index 0000000000..78402f17d0 --- /dev/null +++ b/NullableAttributes.cs @@ -0,0 +1,211 @@ +// Workaround for nullable annotations when multitargeting against netstandard2.0 or .NET versions lower than .NET Core 3.0, which do not support it out of the box. +// https://www.meziantou.net/how-to-use-nullable-reference-types-in-dotnet-standard-2-0-and-dotnet-.htm + +// https://github.com/dotnet/runtime/blob/527f9ae88a0ee216b44d556f9bdc84037fe0ebda/src/libraries/System.Private.CoreLib/src/System/Diagnostics/CodeAnalysis/NullableAttributes.cs + +#pragma warning disable +#define INTERNAL_NULLABLE_ATTRIBUTES + +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Diagnostics.CodeAnalysis +{ +#if NETSTANDARD2_0 || NETCOREAPP2_0 || NETCOREAPP2_1 || NETCOREAPP2_2 || NET45 || NET451 || NET452 || NET46 || NET461 || NET462 || NET47 || NET471 || NET472 || NET48 + /// Specifies that null is allowed as an input even if the corresponding type disallows it. + [AttributeUsage(AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.Property, Inherited = false)] +#if SYSTEM_PRIVATE_CORELIB + public +#else + internal +#endif + sealed class AllowNullAttribute : Attribute + { } + + /// Specifies that null is disallowed as an input even if the corresponding type allows it. + [AttributeUsage(AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.Property, Inherited = false)] +#if SYSTEM_PRIVATE_CORELIB + public +#else + internal +#endif + sealed class DisallowNullAttribute : Attribute + { } + + /// Specifies that an output may be null even if the corresponding type disallows it. + [AttributeUsage(AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.Property | AttributeTargets.ReturnValue, Inherited = false)] +#if SYSTEM_PRIVATE_CORELIB + public +#else + internal +#endif + sealed class MaybeNullAttribute : Attribute + { } + + /// Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns. + [AttributeUsage(AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.Property | AttributeTargets.ReturnValue, Inherited = false)] +#if SYSTEM_PRIVATE_CORELIB + public +#else + internal +#endif + sealed class NotNullAttribute : Attribute + { } + + /// Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it. + [AttributeUsage(AttributeTargets.Parameter, Inherited = false)] +#if SYSTEM_PRIVATE_CORELIB + public +#else + internal +#endif + sealed class MaybeNullWhenAttribute : Attribute + { + /// Initializes the attribute with the specified return value condition. + /// + /// The return value condition. If the method returns this value, the associated parameter may be null. + /// + public MaybeNullWhenAttribute(bool returnValue) => ReturnValue = returnValue; + + /// Gets the return value condition. + public bool ReturnValue { get; } + } + + /// Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + [AttributeUsage(AttributeTargets.Parameter, Inherited = false)] +#if SYSTEM_PRIVATE_CORELIB + public +#else + internal +#endif + sealed class NotNullWhenAttribute : Attribute + { + /// Initializes the attribute with the specified return value condition. + /// + /// The return value condition. If the method returns this value, the associated parameter will not be null. + /// + public NotNullWhenAttribute(bool returnValue) => ReturnValue = returnValue; + + /// Gets the return value condition. + public bool ReturnValue { get; } + } + + /// Specifies that the output will be non-null if the named parameter is non-null. + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Property | AttributeTargets.ReturnValue, AllowMultiple = true, Inherited = false)] +#if SYSTEM_PRIVATE_CORELIB + public +#else + internal +#endif + sealed class NotNullIfNotNullAttribute : Attribute + { + /// Initializes the attribute with the associated parameter name. + /// + /// The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null. + /// + public NotNullIfNotNullAttribute(string parameterName) => ParameterName = parameterName; + + /// Gets the associated parameter name. + public string ParameterName { get; } + } + + /// Applied to a method that will never return under any circumstance. + [AttributeUsage(AttributeTargets.Method, Inherited = false)] +#if SYSTEM_PRIVATE_CORELIB + public +#else + internal +#endif + sealed class DoesNotReturnAttribute : Attribute + { } + + /// Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + [AttributeUsage(AttributeTargets.Parameter, Inherited = false)] +#if SYSTEM_PRIVATE_CORELIB + public +#else + internal +#endif + sealed class DoesNotReturnIfAttribute : Attribute + { + /// Initializes the attribute with the specified parameter value. + /// + /// The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + /// the associated parameter matches this value. + /// + public DoesNotReturnIfAttribute(bool parameterValue) => ParameterValue = parameterValue; + + /// Gets the condition parameter value. + public bool ParameterValue { get; } + } +#endif + +#if NETSTANDARD2_0 || NETCOREAPP2_0 || NETCOREAPP2_1 || NETCOREAPP2_2 || NETCOREAPP3_0 || NETCOREAPP3_1 || NET45 || NET451 || NET452 || NET46 || NET461 || NET462 || NET47 || NET471 || NET472 || NET48 + /// Specifies that the method or property will ensure that the listed field and property members have not-null values. + [AttributeUsage(AttributeTargets.Method | AttributeTargets.Property, Inherited = false, AllowMultiple = true)] +#if SYSTEM_PRIVATE_CORELIB + public +#else + internal +#endif + sealed class MemberNotNullAttribute : Attribute + { + /// Initializes the attribute with a field or property member. + /// + /// The field or property member that is promised to be not-null. + /// + public MemberNotNullAttribute(string member) => Members = new[] { member }; + + /// Initializes the attribute with the list of field and property members. + /// + /// The list of field and property members that are promised to be not-null. + /// + public MemberNotNullAttribute(params string[] members) => Members = members; + + /// Gets field or property member names. + public string[] Members { get; } + } + + /// Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition. + [AttributeUsage(AttributeTargets.Method | AttributeTargets.Property, Inherited = false, AllowMultiple = true)] +#if SYSTEM_PRIVATE_CORELIB + public +#else + internal +#endif + sealed class MemberNotNullWhenAttribute : Attribute + { + /// Initializes the attribute with the specified return value condition and a field or property member. + /// + /// The return value condition. If the method returns this value, the associated parameter will not be null. + /// + /// + /// The field or property member that is promised to be not-null. + /// + public MemberNotNullWhenAttribute(bool returnValue, string member) + { + ReturnValue = returnValue; + Members = new[] { member }; + } + + /// Initializes the attribute with the specified return value condition and list of field and property members. + /// + /// The return value condition. If the method returns this value, the associated parameter will not be null. + /// + /// + /// The list of field and property members that are promised to be not-null. + /// + public MemberNotNullWhenAttribute(bool returnValue, params string[] members) + { + ReturnValue = returnValue; + Members = members; + } + + /// Gets the return value condition. + public bool ReturnValue { get; } + + /// Gets field or property member names. + public string[] Members { get; } + } +#endif +} diff --git a/UnitsNet.Serialization.JsonNet/AbbreviatedUnitsConverter.cs b/UnitsNet.Serialization.JsonNet/AbbreviatedUnitsConverter.cs index 2b89bee8df..deb3728b55 100644 --- a/UnitsNet.Serialization.JsonNet/AbbreviatedUnitsConverter.cs +++ b/UnitsNet.Serialization.JsonNet/AbbreviatedUnitsConverter.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using Newtonsoft.Json; using UnitsNet.Units; @@ -288,7 +289,7 @@ protected Enum Parse(string? unitAbbreviation, QuantityInfo quantityInfo) /// True if successful. /// No units match the abbreviation. /// More than one unit matches the abbreviation. - protected bool TryParse(string? unitAbbreviation, QuantityInfo quantityInfo, out Enum? unit) + protected bool TryParse(string? unitAbbreviation, QuantityInfo quantityInfo, [NotNullWhen(true)] out Enum? unit) { return _unitParser.TryParse(unitAbbreviation, quantityInfo.UnitType, CultureInfo.InvariantCulture, out unit); } @@ -304,7 +305,7 @@ protected bool TryParse(string? unitAbbreviation, QuantityInfo quantityInfo, out /// false /// otherwise /// - protected bool TryGetQuantity(string quantityName, out QuantityInfo quantityInfo) + protected bool TryGetQuantity(string quantityName, [NotNullWhen(true)] out QuantityInfo? quantityInfo) { return _quantities.TryGetValue(quantityName, out quantityInfo); } diff --git a/UnitsNet.Tests/QuantityTest.cs b/UnitsNet.Tests/QuantityTest.cs index 55dfb0341c..9642dd7fcb 100644 --- a/UnitsNet.Tests/QuantityTest.cs +++ b/UnitsNet.Tests/QuantityTest.cs @@ -80,9 +80,9 @@ public void GetUnitInfo_ReturnsUnitInfoForUnitEnumValue() [Fact] public void TryGetUnitInfo_ReturnsUnitInfoForUnitEnumValue() { - bool found = Quantity.TryGetUnitInfo(LengthUnit.Meter, out UnitInfo unitInfo); + bool found = Quantity.TryGetUnitInfo(LengthUnit.Meter, out UnitInfo? unitInfo); Assert.True(found); - Assert.Equal("Meter", unitInfo.Name); + Assert.Equal("Meter", unitInfo!.Name); Assert.Equal("Meters", unitInfo.PluralName); Assert.Equal(LengthUnit.Meter, unitInfo.Value); } diff --git a/UnitsNet/CustomCode/Quantity.cs b/UnitsNet/CustomCode/Quantity.cs index 0f0511b5bb..acff8597f6 100644 --- a/UnitsNet/CustomCode/Quantity.cs +++ b/UnitsNet/CustomCode/Quantity.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; @@ -48,7 +49,7 @@ static Quantity() /// /// Try to get for a given unit enum value. /// - public static bool TryGetUnitInfo(Enum unitEnum, out UnitInfo unitInfo) => + public static bool TryGetUnitInfo(Enum unitEnum, [NotNullWhen(true)] out UnitInfo? unitInfo) => UnitTypeAndNameToUnitInfoLazy.Value.TryGetValue((unitEnum.GetType(), unitEnum.ToString()), out unitInfo); /// @@ -61,14 +62,14 @@ public static bool TryGetUnitInfo(Enum unitEnum, out UnitInfo unitInfo) => public static IQuantity From(QuantityValue value, Enum unit) { if (TryFrom(value, unit, out IQuantity? quantity)) - return quantity!; + return quantity; throw new ArgumentException( $"Unit value {unit} of type {unit.GetType()} is not a known unit enum type. Expected types like UnitsNet.Units.LengthUnit. Did you pass in a third-party enum type defined outside UnitsNet library?"); } /// - public static bool TryFrom(double value, Enum unit, out IQuantity? quantity) + public static bool TryFrom(double value, Enum unit, [NotNullWhen(true)] out IQuantity? quantity) { // Implicit cast to QuantityValue would prevent TryFrom from being called, // so we need to explicitly check this here for double arguments. @@ -98,13 +99,13 @@ public static IQuantity Parse(IFormatProvider? formatProvider, Type quantityType throw new ArgumentException($"Type {quantityType} must be of type UnitsNet.IQuantity."); if (TryParse(formatProvider, quantityType, quantityString, out IQuantity? quantity)) - return quantity!; + return quantity; throw new ArgumentException($"Quantity string could not be parsed to quantity {quantityType}."); } /// - public static bool TryParse(Type quantityType, string quantityString, out IQuantity? quantity) => + public static bool TryParse(Type quantityType, string quantityString, [NotNullWhen(true)] out IQuantity? quantity) => TryParse(null, quantityType, quantityString, out quantity); /// diff --git a/UnitsNet/CustomCode/QuantityParser.cs b/UnitsNet/CustomCode/QuantityParser.cs index b5f4ecb012..7ad2594a53 100644 --- a/UnitsNet/CustomCode/QuantityParser.cs +++ b/UnitsNet/CustomCode/QuantityParser.cs @@ -58,7 +58,7 @@ internal TQuantity Parse(string str, throw ex; } - return ParseWithRegex(valueString!, unitString!, fromDelegate, formatProvider); + return ParseWithRegex(valueString, unitString, fromDelegate, formatProvider); } [SuppressMessage("ReSharper", "UseStringInterpolation")] @@ -71,8 +71,8 @@ internal bool TryParse(string? str, { result = default; - if(string.IsNullOrWhiteSpace(str)) return false; - str = str!.Trim(); + if (string.IsNullOrWhiteSpace(str)) return false; + str = str!.Trim(); // netstandard2.0 nullable quirk var regex = CreateRegexForQuantity(formatProvider); @@ -163,7 +163,7 @@ private bool TryParseWithRegex(string? valueString, return true; } - private static bool TryExtractValueAndUnit(Regex regex, string str, out string? valueString, out string? unitString) + private static bool TryExtractValueAndUnit(Regex regex, string str, [NotNullWhen(true)] out string? valueString, [NotNullWhen(true)] out string? unitString) { var match = regex.Match(str); diff --git a/UnitsNet/CustomCode/UnitParser.cs b/UnitsNet/CustomCode/UnitParser.cs index 4a673bd593..66cd8287d0 100644 --- a/UnitsNet/CustomCode/UnitParser.cs +++ b/UnitsNet/CustomCode/UnitParser.cs @@ -2,6 +2,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using UnitsNet.Units; @@ -161,7 +162,7 @@ public bool TryParse(string? unitAbbreviation, IFormatProvider? forma if (!TryParse(unitAbbreviation, typeof(TUnitType), formatProvider, out var unitObj)) return false; - unit = (TUnitType)unitObj!; + unit = (TUnitType)unitObj; return true; } @@ -172,7 +173,7 @@ public bool TryParse(string? unitAbbreviation, IFormatProvider? forma /// Type of unit enum. /// The unit enum value as out result. /// True if successful. - public bool TryParse(string unitAbbreviation, Type unitType, out Enum? unit) + public bool TryParse(string unitAbbreviation, Type unitType, [NotNullWhen(true)] out Enum? unit) { return TryParse(unitAbbreviation, unitType, null, out unit); } @@ -185,7 +186,7 @@ public bool TryParse(string unitAbbreviation, Type unitType, out Enum? unit) /// The format provider to use for lookup. Defaults to if null. /// The unit enum value as out result. /// True if successful. - public bool TryParse(string? unitAbbreviation, Type unitType, IFormatProvider? formatProvider, out Enum? unit) + public bool TryParse(string? unitAbbreviation, Type unitType, IFormatProvider? formatProvider, [NotNullWhen(true)] out Enum? unit) { if (unitAbbreviation == null) { diff --git a/UnitsNet/CustomCode/UnitValueAbbreviationLookup.cs b/UnitsNet/CustomCode/UnitValueAbbreviationLookup.cs index a46256ab65..d303658682 100644 --- a/UnitsNet/CustomCode/UnitValueAbbreviationLookup.cs +++ b/UnitsNet/CustomCode/UnitValueAbbreviationLookup.cs @@ -48,7 +48,7 @@ internal IReadOnlyList GetUnitsForAbbreviation(string abbreviation, bool ig var key = ignoreCase ? lowerCaseAbbreviation : abbreviation; var map = ignoreCase ? _lowerCaseAbbreviationToUnitMap : _abbreviationToUnitMap; - if (!map.TryGetValue(key, out IReadOnlyList units)) + if (!map.TryGetValue(key, out IReadOnlyList? units)) return new List(0); return units.ToList(); diff --git a/UnitsNet/GeneratedCode/Quantities/Acceleration.g.cs b/UnitsNet/GeneratedCode/Quantities/Acceleration.g.cs index 6f46045043..10a9c1a3f3 100644 --- a/UnitsNet/GeneratedCode/Quantities/Acceleration.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Acceleration.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -736,7 +737,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Accel /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Acceleration otherQuantity)) return false; @@ -768,7 +769,7 @@ public bool Equals(Acceleration other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Acceleration otherQuantity)) throw new ArgumentException("Expected type Acceleration.", nameof(obj)); @@ -938,7 +939,7 @@ public Acceleration ToUnit(AccelerationUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(AccelerationUnit unit, out Acceleration? converted) + private bool TryToUnit(AccelerationUnit unit, [NotNullWhen(true)] out Acceleration? converted) { if (Unit == unit) { @@ -946,7 +947,7 @@ private bool TryToUnit(AccelerationUnit unit, out Acceleration? converted) return true; } - converted = (Unit, unit) switch + Acceleration? convertedOrNull = (Unit, unit) switch { // AccelerationUnit -> BaseUnit (AccelerationUnit.CentimeterPerSecondSquared, AccelerationUnit.MeterPerSecondSquared) => new Acceleration((_value) * 1e-2d, AccelerationUnit.MeterPerSecondSquared), @@ -978,10 +979,17 @@ private bool TryToUnit(AccelerationUnit unit, out Acceleration? converted) (AccelerationUnit.MeterPerSecondSquared, AccelerationUnit.NanometerPerSecondSquared) => new Acceleration((_value) / 1e-9d, AccelerationUnit.NanometerPerSecondSquared), (AccelerationUnit.MeterPerSecondSquared, AccelerationUnit.StandardGravity) => new Acceleration(_value / 9.80665, AccelerationUnit.StandardGravity), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1046,7 +1054,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1058,7 +1066,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1072,67 +1080,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Acceleration)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Acceleration)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Acceleration)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Acceleration)) return this; @@ -1146,17 +1154,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Acceleration)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/AmountOfSubstance.g.cs b/UnitsNet/GeneratedCode/Quantities/AmountOfSubstance.g.cs index 872a8d9f7b..01f9115756 100644 --- a/UnitsNet/GeneratedCode/Quantities/AmountOfSubstance.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/AmountOfSubstance.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -741,7 +742,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Amoun /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is AmountOfSubstance otherQuantity)) return false; @@ -773,7 +774,7 @@ public bool Equals(AmountOfSubstance other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is AmountOfSubstance otherQuantity)) throw new ArgumentException("Expected type AmountOfSubstance.", nameof(obj)); @@ -943,7 +944,7 @@ public AmountOfSubstance ToUnit(AmountOfSubstanceUnit unit, UnitConverter unitCo /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(AmountOfSubstanceUnit unit, out AmountOfSubstance? converted) + private bool TryToUnit(AmountOfSubstanceUnit unit, [NotNullWhen(true)] out AmountOfSubstance? converted) { if (Unit == unit) { @@ -951,7 +952,7 @@ private bool TryToUnit(AmountOfSubstanceUnit unit, out AmountOfSubstance? conver return true; } - converted = (Unit, unit) switch + AmountOfSubstance? convertedOrNull = (Unit, unit) switch { // AmountOfSubstanceUnit -> BaseUnit (AmountOfSubstanceUnit.Centimole, AmountOfSubstanceUnit.Mole) => new AmountOfSubstance((_value) * 1e-2d, AmountOfSubstanceUnit.Mole), @@ -985,10 +986,17 @@ private bool TryToUnit(AmountOfSubstanceUnit unit, out AmountOfSubstance? conver (AmountOfSubstanceUnit.Mole, AmountOfSubstanceUnit.NanopoundMole) => new AmountOfSubstance((_value / 453.59237) / 1e-9d, AmountOfSubstanceUnit.NanopoundMole), (AmountOfSubstanceUnit.Mole, AmountOfSubstanceUnit.PoundMole) => new AmountOfSubstance(_value / 453.59237, AmountOfSubstanceUnit.PoundMole), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1053,7 +1061,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1065,7 +1073,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1079,67 +1087,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(AmountOfSubstance)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(AmountOfSubstance)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(AmountOfSubstance)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(AmountOfSubstance)) return this; @@ -1153,17 +1161,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(AmountOfSubstance)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/AmplitudeRatio.g.cs b/UnitsNet/GeneratedCode/Quantities/AmplitudeRatio.g.cs index 921ee0f215..5d9c147ee0 100644 --- a/UnitsNet/GeneratedCode/Quantities/AmplitudeRatio.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/AmplitudeRatio.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -540,7 +541,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Ampli /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is AmplitudeRatio otherQuantity)) return false; @@ -572,7 +573,7 @@ public bool Equals(AmplitudeRatio other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is AmplitudeRatio otherQuantity)) throw new ArgumentException("Expected type AmplitudeRatio.", nameof(obj)); @@ -742,7 +743,7 @@ public AmplitudeRatio ToUnit(AmplitudeRatioUnit unit, UnitConverter unitConverte /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(AmplitudeRatioUnit unit, out AmplitudeRatio? converted) + private bool TryToUnit(AmplitudeRatioUnit unit, [NotNullWhen(true)] out AmplitudeRatio? converted) { if (Unit == unit) { @@ -750,7 +751,7 @@ private bool TryToUnit(AmplitudeRatioUnit unit, out AmplitudeRatio? converted) return true; } - converted = (Unit, unit) switch + AmplitudeRatio? convertedOrNull = (Unit, unit) switch { // AmplitudeRatioUnit -> BaseUnit (AmplitudeRatioUnit.DecibelMicrovolt, AmplitudeRatioUnit.DecibelVolt) => new AmplitudeRatio(_value - 120, AmplitudeRatioUnit.DecibelVolt), @@ -762,10 +763,17 @@ private bool TryToUnit(AmplitudeRatioUnit unit, out AmplitudeRatio? converted) (AmplitudeRatioUnit.DecibelVolt, AmplitudeRatioUnit.DecibelMillivolt) => new AmplitudeRatio(_value + 60, AmplitudeRatioUnit.DecibelMillivolt), (AmplitudeRatioUnit.DecibelVolt, AmplitudeRatioUnit.DecibelUnloaded) => new AmplitudeRatio(_value + 2.218487499, AmplitudeRatioUnit.DecibelUnloaded), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -830,7 +838,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -842,7 +850,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -856,67 +864,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(AmplitudeRatio)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(AmplitudeRatio)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(AmplitudeRatio)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(AmplitudeRatio)) return this; @@ -930,17 +938,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(AmplitudeRatio)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Angle.g.cs b/UnitsNet/GeneratedCode/Quantities/Angle.g.cs index 8ae2c7efc3..35dbb2a5ac 100644 --- a/UnitsNet/GeneratedCode/Quantities/Angle.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Angle.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -772,7 +773,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Angle /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Angle otherQuantity)) return false; @@ -804,7 +805,7 @@ public bool Equals(Angle other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Angle otherQuantity)) throw new ArgumentException("Expected type Angle.", nameof(obj)); @@ -974,7 +975,7 @@ public Angle ToUnit(AngleUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(AngleUnit unit, out Angle? converted) + private bool TryToUnit(AngleUnit unit, [NotNullWhen(true)] out Angle? converted) { if (Unit == unit) { @@ -982,7 +983,7 @@ private bool TryToUnit(AngleUnit unit, out Angle? converted) return true; } - converted = (Unit, unit) switch + Angle? convertedOrNull = (Unit, unit) switch { // AngleUnit -> BaseUnit (AngleUnit.Arcminute, AngleUnit.Degree) => new Angle(_value / 60, AngleUnit.Degree), @@ -1018,10 +1019,17 @@ private bool TryToUnit(AngleUnit unit, out Angle? converted) (AngleUnit.Degree, AngleUnit.Revolution) => new Angle(_value / 360, AngleUnit.Revolution), (AngleUnit.Degree, AngleUnit.Tilt) => new Angle(Math.Sin(_value / 180 * Math.PI), AngleUnit.Tilt), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1086,7 +1094,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1098,7 +1106,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1112,67 +1120,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Angle)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Angle)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Angle)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Angle)) return this; @@ -1186,17 +1194,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Angle)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ApparentEnergy.g.cs b/UnitsNet/GeneratedCode/Quantities/ApparentEnergy.g.cs index bb8384a01c..834b66a4f2 100644 --- a/UnitsNet/GeneratedCode/Quantities/ApparentEnergy.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ApparentEnergy.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -513,7 +514,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Appar /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ApparentEnergy otherQuantity)) return false; @@ -545,7 +546,7 @@ public bool Equals(ApparentEnergy other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ApparentEnergy otherQuantity)) throw new ArgumentException("Expected type ApparentEnergy.", nameof(obj)); @@ -715,7 +716,7 @@ public ApparentEnergy ToUnit(ApparentEnergyUnit unit, UnitConverter unitConverte /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ApparentEnergyUnit unit, out ApparentEnergy? converted) + private bool TryToUnit(ApparentEnergyUnit unit, [NotNullWhen(true)] out ApparentEnergy? converted) { if (Unit == unit) { @@ -723,7 +724,7 @@ private bool TryToUnit(ApparentEnergyUnit unit, out ApparentEnergy? converted) return true; } - converted = (Unit, unit) switch + ApparentEnergy? convertedOrNull = (Unit, unit) switch { // ApparentEnergyUnit -> BaseUnit (ApparentEnergyUnit.KilovoltampereHour, ApparentEnergyUnit.VoltampereHour) => new ApparentEnergy((_value) * 1e3d, ApparentEnergyUnit.VoltampereHour), @@ -733,10 +734,17 @@ private bool TryToUnit(ApparentEnergyUnit unit, out ApparentEnergy? converted) (ApparentEnergyUnit.VoltampereHour, ApparentEnergyUnit.KilovoltampereHour) => new ApparentEnergy((_value) / 1e3d, ApparentEnergyUnit.KilovoltampereHour), (ApparentEnergyUnit.VoltampereHour, ApparentEnergyUnit.MegavoltampereHour) => new ApparentEnergy((_value) / 1e6d, ApparentEnergyUnit.MegavoltampereHour), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -801,7 +809,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -813,7 +821,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -827,67 +835,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ApparentEnergy)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ApparentEnergy)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ApparentEnergy)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ApparentEnergy)) return this; @@ -901,17 +909,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ApparentEnergy)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ApparentPower.g.cs b/UnitsNet/GeneratedCode/Quantities/ApparentPower.g.cs index 0699cf9e05..8653aa4575 100644 --- a/UnitsNet/GeneratedCode/Quantities/ApparentPower.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ApparentPower.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -532,7 +533,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Appar /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ApparentPower otherQuantity)) return false; @@ -564,7 +565,7 @@ public bool Equals(ApparentPower other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ApparentPower otherQuantity)) throw new ArgumentException("Expected type ApparentPower.", nameof(obj)); @@ -734,7 +735,7 @@ public ApparentPower ToUnit(ApparentPowerUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ApparentPowerUnit unit, out ApparentPower? converted) + private bool TryToUnit(ApparentPowerUnit unit, [NotNullWhen(true)] out ApparentPower? converted) { if (Unit == unit) { @@ -742,7 +743,7 @@ private bool TryToUnit(ApparentPowerUnit unit, out ApparentPower? converted) return true; } - converted = (Unit, unit) switch + ApparentPower? convertedOrNull = (Unit, unit) switch { // ApparentPowerUnit -> BaseUnit (ApparentPowerUnit.Gigavoltampere, ApparentPowerUnit.Voltampere) => new ApparentPower((_value) * 1e9d, ApparentPowerUnit.Voltampere), @@ -754,10 +755,17 @@ private bool TryToUnit(ApparentPowerUnit unit, out ApparentPower? converted) (ApparentPowerUnit.Voltampere, ApparentPowerUnit.Kilovoltampere) => new ApparentPower((_value) / 1e3d, ApparentPowerUnit.Kilovoltampere), (ApparentPowerUnit.Voltampere, ApparentPowerUnit.Megavoltampere) => new ApparentPower((_value) / 1e6d, ApparentPowerUnit.Megavoltampere), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -822,7 +830,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -834,7 +842,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -848,67 +856,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ApparentPower)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ApparentPower)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ApparentPower)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ApparentPower)) return this; @@ -922,17 +930,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ApparentPower)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Area.g.cs b/UnitsNet/GeneratedCode/Quantities/Area.g.cs index 7abecbe02b..dd71c089bc 100644 --- a/UnitsNet/GeneratedCode/Quantities/Area.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Area.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -749,7 +750,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out AreaU /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Area otherQuantity)) return false; @@ -781,7 +782,7 @@ public bool Equals(Area other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Area otherQuantity)) throw new ArgumentException("Expected type Area.", nameof(obj)); @@ -951,7 +952,7 @@ public Area ToUnit(AreaUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(AreaUnit unit, out Area? converted) + private bool TryToUnit(AreaUnit unit, [NotNullWhen(true)] out Area? converted) { if (Unit == unit) { @@ -959,7 +960,7 @@ private bool TryToUnit(AreaUnit unit, out Area? converted) return true; } - converted = (Unit, unit) switch + Area? convertedOrNull = (Unit, unit) switch { // AreaUnit -> BaseUnit (AreaUnit.Acre, AreaUnit.SquareMeter) => new Area(_value * 4046.85642, AreaUnit.SquareMeter), @@ -991,10 +992,17 @@ private bool TryToUnit(AreaUnit unit, out Area? converted) (AreaUnit.SquareMeter, AreaUnit.SquareYard) => new Area(_value / 0.836127, AreaUnit.SquareYard), (AreaUnit.SquareMeter, AreaUnit.UsSurveySquareFoot) => new Area(_value / 0.09290341161, AreaUnit.UsSurveySquareFoot), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1059,7 +1067,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1071,7 +1079,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1085,67 +1093,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Area)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Area)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Area)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Area)) return this; @@ -1159,17 +1167,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Area)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/AreaDensity.g.cs b/UnitsNet/GeneratedCode/Quantities/AreaDensity.g.cs index e18754d2f1..20dfd4d304 100644 --- a/UnitsNet/GeneratedCode/Quantities/AreaDensity.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/AreaDensity.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -513,7 +514,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out AreaD /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is AreaDensity otherQuantity)) return false; @@ -545,7 +546,7 @@ public bool Equals(AreaDensity other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is AreaDensity otherQuantity)) throw new ArgumentException("Expected type AreaDensity.", nameof(obj)); @@ -715,7 +716,7 @@ public AreaDensity ToUnit(AreaDensityUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(AreaDensityUnit unit, out AreaDensity? converted) + private bool TryToUnit(AreaDensityUnit unit, [NotNullWhen(true)] out AreaDensity? converted) { if (Unit == unit) { @@ -723,7 +724,7 @@ private bool TryToUnit(AreaDensityUnit unit, out AreaDensity? converted) return true; } - converted = (Unit, unit) switch + AreaDensity? convertedOrNull = (Unit, unit) switch { // AreaDensityUnit -> BaseUnit (AreaDensityUnit.GramPerSquareMeter, AreaDensityUnit.KilogramPerSquareMeter) => new AreaDensity(_value / 1000, AreaDensityUnit.KilogramPerSquareMeter), @@ -733,10 +734,17 @@ private bool TryToUnit(AreaDensityUnit unit, out AreaDensity? converted) (AreaDensityUnit.KilogramPerSquareMeter, AreaDensityUnit.GramPerSquareMeter) => new AreaDensity(_value * 1000, AreaDensityUnit.GramPerSquareMeter), (AreaDensityUnit.KilogramPerSquareMeter, AreaDensityUnit.MilligramPerSquareMeter) => new AreaDensity(_value * 1000000, AreaDensityUnit.MilligramPerSquareMeter), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -801,7 +809,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -813,7 +821,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -827,67 +835,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(AreaDensity)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(AreaDensity)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(AreaDensity)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(AreaDensity)) return this; @@ -901,17 +909,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(AreaDensity)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/AreaMomentOfInertia.g.cs b/UnitsNet/GeneratedCode/Quantities/AreaMomentOfInertia.g.cs index 3ed484bee5..4e6e567989 100644 --- a/UnitsNet/GeneratedCode/Quantities/AreaMomentOfInertia.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/AreaMomentOfInertia.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -570,7 +571,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out AreaM /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is AreaMomentOfInertia otherQuantity)) return false; @@ -602,7 +603,7 @@ public bool Equals(AreaMomentOfInertia other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is AreaMomentOfInertia otherQuantity)) throw new ArgumentException("Expected type AreaMomentOfInertia.", nameof(obj)); @@ -772,7 +773,7 @@ public AreaMomentOfInertia ToUnit(AreaMomentOfInertiaUnit unit, UnitConverter un /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(AreaMomentOfInertiaUnit unit, out AreaMomentOfInertia? converted) + private bool TryToUnit(AreaMomentOfInertiaUnit unit, [NotNullWhen(true)] out AreaMomentOfInertia? converted) { if (Unit == unit) { @@ -780,7 +781,7 @@ private bool TryToUnit(AreaMomentOfInertiaUnit unit, out AreaMomentOfInertia? co return true; } - converted = (Unit, unit) switch + AreaMomentOfInertia? convertedOrNull = (Unit, unit) switch { // AreaMomentOfInertiaUnit -> BaseUnit (AreaMomentOfInertiaUnit.CentimeterToTheFourth, AreaMomentOfInertiaUnit.MeterToTheFourth) => new AreaMomentOfInertia(_value / 1e8, AreaMomentOfInertiaUnit.MeterToTheFourth), @@ -796,10 +797,17 @@ private bool TryToUnit(AreaMomentOfInertiaUnit unit, out AreaMomentOfInertia? co (AreaMomentOfInertiaUnit.MeterToTheFourth, AreaMomentOfInertiaUnit.InchToTheFourth) => new AreaMomentOfInertia(_value / Math.Pow(2.54e-2, 4), AreaMomentOfInertiaUnit.InchToTheFourth), (AreaMomentOfInertiaUnit.MeterToTheFourth, AreaMomentOfInertiaUnit.MillimeterToTheFourth) => new AreaMomentOfInertia(_value * 1e12, AreaMomentOfInertiaUnit.MillimeterToTheFourth), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -864,7 +872,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -876,7 +884,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -890,67 +898,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(AreaMomentOfInertia)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(AreaMomentOfInertia)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(AreaMomentOfInertia)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(AreaMomentOfInertia)) return this; @@ -964,17 +972,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(AreaMomentOfInertia)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/BitRate.g.cs b/UnitsNet/GeneratedCode/Quantities/BitRate.g.cs index dcb500d79d..2d0c7e693f 100644 --- a/UnitsNet/GeneratedCode/Quantities/BitRate.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/BitRate.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -956,7 +957,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out BitRa /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, decimal, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is BitRate otherQuantity)) return false; @@ -988,7 +989,7 @@ public bool Equals(BitRate other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is BitRate otherQuantity)) throw new ArgumentException("Expected type BitRate.", nameof(obj)); @@ -1169,7 +1170,7 @@ public BitRate ToUnit(BitRateUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(BitRateUnit unit, out BitRate? converted) + private bool TryToUnit(BitRateUnit unit, [NotNullWhen(true)] out BitRate? converted) { if (Unit == unit) { @@ -1177,7 +1178,7 @@ private bool TryToUnit(BitRateUnit unit, out BitRate? converted) return true; } - converted = (Unit, unit) switch + BitRate? convertedOrNull = (Unit, unit) switch { // BitRateUnit -> BaseUnit (BitRateUnit.BytePerSecond, BitRateUnit.BitPerSecond) => new BitRate(_value * 8m, BitRateUnit.BitPerSecond), @@ -1233,10 +1234,17 @@ private bool TryToUnit(BitRateUnit unit, out BitRate? converted) (BitRateUnit.BitPerSecond, BitRateUnit.TerabitPerSecond) => new BitRate((_value) / 1e12m, BitRateUnit.TerabitPerSecond), (BitRateUnit.BitPerSecond, BitRateUnit.TerabytePerSecond) => new BitRate((_value / 8m) / 1e12m, BitRateUnit.TerabytePerSecond), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1301,7 +1309,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1313,7 +1321,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1327,67 +1335,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(BitRate)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(BitRate)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(BitRate)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(BitRate)) return this; @@ -1401,17 +1409,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(BitRate)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/BrakeSpecificFuelConsumption.g.cs b/UnitsNet/GeneratedCode/Quantities/BrakeSpecificFuelConsumption.g.cs index a27f3ac938..c3e720e792 100644 --- a/UnitsNet/GeneratedCode/Quantities/BrakeSpecificFuelConsumption.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/BrakeSpecificFuelConsumption.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -513,7 +514,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Brake /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is BrakeSpecificFuelConsumption otherQuantity)) return false; @@ -545,7 +546,7 @@ public bool Equals(BrakeSpecificFuelConsumption other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is BrakeSpecificFuelConsumption otherQuantity)) throw new ArgumentException("Expected type BrakeSpecificFuelConsumption.", nameof(obj)); @@ -715,7 +716,7 @@ public BrakeSpecificFuelConsumption ToUnit(BrakeSpecificFuelConsumptionUnit unit /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(BrakeSpecificFuelConsumptionUnit unit, out BrakeSpecificFuelConsumption? converted) + private bool TryToUnit(BrakeSpecificFuelConsumptionUnit unit, [NotNullWhen(true)] out BrakeSpecificFuelConsumption? converted) { if (Unit == unit) { @@ -723,7 +724,7 @@ private bool TryToUnit(BrakeSpecificFuelConsumptionUnit unit, out BrakeSpecificF return true; } - converted = (Unit, unit) switch + BrakeSpecificFuelConsumption? convertedOrNull = (Unit, unit) switch { // BrakeSpecificFuelConsumptionUnit -> BaseUnit (BrakeSpecificFuelConsumptionUnit.GramPerKiloWattHour, BrakeSpecificFuelConsumptionUnit.KilogramPerJoule) => new BrakeSpecificFuelConsumption(_value / 3.6e9, BrakeSpecificFuelConsumptionUnit.KilogramPerJoule), @@ -733,10 +734,17 @@ private bool TryToUnit(BrakeSpecificFuelConsumptionUnit unit, out BrakeSpecificF (BrakeSpecificFuelConsumptionUnit.KilogramPerJoule, BrakeSpecificFuelConsumptionUnit.GramPerKiloWattHour) => new BrakeSpecificFuelConsumption(_value * 3.6e9, BrakeSpecificFuelConsumptionUnit.GramPerKiloWattHour), (BrakeSpecificFuelConsumptionUnit.KilogramPerJoule, BrakeSpecificFuelConsumptionUnit.PoundPerMechanicalHorsepowerHour) => new BrakeSpecificFuelConsumption(_value / 1.689659410672e-7, BrakeSpecificFuelConsumptionUnit.PoundPerMechanicalHorsepowerHour), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -801,7 +809,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -813,7 +821,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -827,67 +835,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(BrakeSpecificFuelConsumption)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(BrakeSpecificFuelConsumption)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(BrakeSpecificFuelConsumption)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(BrakeSpecificFuelConsumption)) return this; @@ -901,17 +909,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(BrakeSpecificFuelConsumption)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Capacitance.g.cs b/UnitsNet/GeneratedCode/Quantities/Capacitance.g.cs index c835cd11af..66108a7d99 100644 --- a/UnitsNet/GeneratedCode/Quantities/Capacitance.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Capacitance.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -592,7 +593,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Capac /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Capacitance otherQuantity)) return false; @@ -624,7 +625,7 @@ public bool Equals(Capacitance other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Capacitance otherQuantity)) throw new ArgumentException("Expected type Capacitance.", nameof(obj)); @@ -794,7 +795,7 @@ public Capacitance ToUnit(CapacitanceUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(CapacitanceUnit unit, out Capacitance? converted) + private bool TryToUnit(CapacitanceUnit unit, [NotNullWhen(true)] out Capacitance? converted) { if (Unit == unit) { @@ -802,7 +803,7 @@ private bool TryToUnit(CapacitanceUnit unit, out Capacitance? converted) return true; } - converted = (Unit, unit) switch + Capacitance? convertedOrNull = (Unit, unit) switch { // CapacitanceUnit -> BaseUnit (CapacitanceUnit.Kilofarad, CapacitanceUnit.Farad) => new Capacitance((_value) * 1e3d, CapacitanceUnit.Farad), @@ -820,10 +821,17 @@ private bool TryToUnit(CapacitanceUnit unit, out Capacitance? converted) (CapacitanceUnit.Farad, CapacitanceUnit.Nanofarad) => new Capacitance((_value) / 1e-9d, CapacitanceUnit.Nanofarad), (CapacitanceUnit.Farad, CapacitanceUnit.Picofarad) => new Capacitance((_value) / 1e-12d, CapacitanceUnit.Picofarad), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -888,7 +896,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -900,7 +908,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -914,67 +922,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Capacitance)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Capacitance)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Capacitance)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Capacitance)) return this; @@ -988,17 +996,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Capacitance)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/CoefficientOfThermalExpansion.g.cs b/UnitsNet/GeneratedCode/Quantities/CoefficientOfThermalExpansion.g.cs index b74d70e9bb..3dde7f804d 100644 --- a/UnitsNet/GeneratedCode/Quantities/CoefficientOfThermalExpansion.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/CoefficientOfThermalExpansion.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -513,7 +514,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Coeff /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is CoefficientOfThermalExpansion otherQuantity)) return false; @@ -545,7 +546,7 @@ public bool Equals(CoefficientOfThermalExpansion other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is CoefficientOfThermalExpansion otherQuantity)) throw new ArgumentException("Expected type CoefficientOfThermalExpansion.", nameof(obj)); @@ -715,7 +716,7 @@ public CoefficientOfThermalExpansion ToUnit(CoefficientOfThermalExpansionUnit un /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(CoefficientOfThermalExpansionUnit unit, out CoefficientOfThermalExpansion? converted) + private bool TryToUnit(CoefficientOfThermalExpansionUnit unit, [NotNullWhen(true)] out CoefficientOfThermalExpansion? converted) { if (Unit == unit) { @@ -723,7 +724,7 @@ private bool TryToUnit(CoefficientOfThermalExpansionUnit unit, out CoefficientOf return true; } - converted = (Unit, unit) switch + CoefficientOfThermalExpansion? convertedOrNull = (Unit, unit) switch { // CoefficientOfThermalExpansionUnit -> BaseUnit (CoefficientOfThermalExpansionUnit.InverseDegreeCelsius, CoefficientOfThermalExpansionUnit.InverseKelvin) => new CoefficientOfThermalExpansion(_value, CoefficientOfThermalExpansionUnit.InverseKelvin), @@ -733,10 +734,17 @@ private bool TryToUnit(CoefficientOfThermalExpansionUnit unit, out CoefficientOf (CoefficientOfThermalExpansionUnit.InverseKelvin, CoefficientOfThermalExpansionUnit.InverseDegreeCelsius) => new CoefficientOfThermalExpansion(_value, CoefficientOfThermalExpansionUnit.InverseDegreeCelsius), (CoefficientOfThermalExpansionUnit.InverseKelvin, CoefficientOfThermalExpansionUnit.InverseDegreeFahrenheit) => new CoefficientOfThermalExpansion(_value * 5 / 9, CoefficientOfThermalExpansionUnit.InverseDegreeFahrenheit), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -801,7 +809,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -813,7 +821,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -827,67 +835,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(CoefficientOfThermalExpansion)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(CoefficientOfThermalExpansion)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(CoefficientOfThermalExpansion)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(CoefficientOfThermalExpansion)) return this; @@ -901,17 +909,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(CoefficientOfThermalExpansion)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Compressibility.g.cs b/UnitsNet/GeneratedCode/Quantities/Compressibility.g.cs index 7b36103334..4afa6d3cde 100644 --- a/UnitsNet/GeneratedCode/Quantities/Compressibility.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Compressibility.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -589,7 +590,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Compr /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Compressibility otherQuantity)) return false; @@ -621,7 +622,7 @@ public bool Equals(Compressibility other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Compressibility otherQuantity)) throw new ArgumentException("Expected type Compressibility.", nameof(obj)); @@ -791,7 +792,7 @@ public Compressibility ToUnit(CompressibilityUnit unit, UnitConverter unitConver /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(CompressibilityUnit unit, out Compressibility? converted) + private bool TryToUnit(CompressibilityUnit unit, [NotNullWhen(true)] out Compressibility? converted) { if (Unit == unit) { @@ -799,7 +800,7 @@ private bool TryToUnit(CompressibilityUnit unit, out Compressibility? converted) return true; } - converted = (Unit, unit) switch + Compressibility? convertedOrNull = (Unit, unit) switch { // CompressibilityUnit -> BaseUnit (CompressibilityUnit.InverseAtmosphere, CompressibilityUnit.InversePascal) => new Compressibility(_value * 101325, CompressibilityUnit.InversePascal), @@ -817,10 +818,17 @@ private bool TryToUnit(CompressibilityUnit unit, out Compressibility? converted) (CompressibilityUnit.InversePascal, CompressibilityUnit.InverseMillibar) => new Compressibility(_value / 100, CompressibilityUnit.InverseMillibar), (CompressibilityUnit.InversePascal, CompressibilityUnit.InversePoundForcePerSquareInch) => new Compressibility(_value / 6.894757293168361e3, CompressibilityUnit.InversePoundForcePerSquareInch), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -885,7 +893,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -897,7 +905,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -911,67 +919,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Compressibility)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Compressibility)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Compressibility)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Compressibility)) return this; @@ -985,17 +993,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Compressibility)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Density.g.cs b/UnitsNet/GeneratedCode/Quantities/Density.g.cs index 4173fdfbf9..562b9d5bb8 100644 --- a/UnitsNet/GeneratedCode/Quantities/Density.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Density.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -1432,7 +1433,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Densi /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Density otherQuantity)) return false; @@ -1464,7 +1465,7 @@ public bool Equals(Density other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Density otherQuantity)) throw new ArgumentException("Expected type Density.", nameof(obj)); @@ -1634,7 +1635,7 @@ public Density ToUnit(DensityUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(DensityUnit unit, out Density? converted) + private bool TryToUnit(DensityUnit unit, [NotNullWhen(true)] out Density? converted) { if (Unit == unit) { @@ -1642,7 +1643,7 @@ private bool TryToUnit(DensityUnit unit, out Density? converted) return true; } - converted = (Unit, unit) switch + Density? convertedOrNull = (Unit, unit) switch { // DensityUnit -> BaseUnit (DensityUnit.CentigramPerDeciliter, DensityUnit.KilogramPerCubicMeter) => new Density((_value / 1e-1) * 1e-2d, DensityUnit.KilogramPerCubicMeter), @@ -1748,10 +1749,17 @@ private bool TryToUnit(DensityUnit unit, out Density? converted) (DensityUnit.KilogramPerCubicMeter, DensityUnit.TonnePerCubicMeter) => new Density(_value * 0.001, DensityUnit.TonnePerCubicMeter), (DensityUnit.KilogramPerCubicMeter, DensityUnit.TonnePerCubicMillimeter) => new Density(_value * 1e-12, DensityUnit.TonnePerCubicMillimeter), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1816,7 +1824,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1828,7 +1836,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1842,67 +1850,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Density)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Density)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Density)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Density)) return this; @@ -1916,17 +1924,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Density)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Duration.g.cs b/UnitsNet/GeneratedCode/Quantities/Duration.g.cs index 6a9c10da47..0d91258e7b 100644 --- a/UnitsNet/GeneratedCode/Quantities/Duration.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Duration.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -675,7 +676,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Durat /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Duration otherQuantity)) return false; @@ -707,7 +708,7 @@ public bool Equals(Duration other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Duration otherQuantity)) throw new ArgumentException("Expected type Duration.", nameof(obj)); @@ -877,7 +878,7 @@ public Duration ToUnit(DurationUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(DurationUnit unit, out Duration? converted) + private bool TryToUnit(DurationUnit unit, [NotNullWhen(true)] out Duration? converted) { if (Unit == unit) { @@ -885,7 +886,7 @@ private bool TryToUnit(DurationUnit unit, out Duration? converted) return true; } - converted = (Unit, unit) switch + Duration? convertedOrNull = (Unit, unit) switch { // DurationUnit -> BaseUnit (DurationUnit.Day, DurationUnit.Second) => new Duration(_value * 24 * 3600, DurationUnit.Second), @@ -911,10 +912,17 @@ private bool TryToUnit(DurationUnit unit, out Duration? converted) (DurationUnit.Second, DurationUnit.Week) => new Duration(_value / (7 * 24 * 3600), DurationUnit.Week), (DurationUnit.Second, DurationUnit.Year365) => new Duration(_value / (365 * 24 * 3600), DurationUnit.Year365), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -979,7 +987,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -991,7 +999,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1005,67 +1013,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Duration)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Duration)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Duration)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Duration)) return this; @@ -1079,17 +1087,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Duration)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/DynamicViscosity.g.cs b/UnitsNet/GeneratedCode/Quantities/DynamicViscosity.g.cs index a85cde6033..2150ca69d0 100644 --- a/UnitsNet/GeneratedCode/Quantities/DynamicViscosity.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/DynamicViscosity.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -649,7 +650,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Dynam /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is DynamicViscosity otherQuantity)) return false; @@ -681,7 +682,7 @@ public bool Equals(DynamicViscosity other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is DynamicViscosity otherQuantity)) throw new ArgumentException("Expected type DynamicViscosity.", nameof(obj)); @@ -851,7 +852,7 @@ public DynamicViscosity ToUnit(DynamicViscosityUnit unit, UnitConverter unitConv /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(DynamicViscosityUnit unit, out DynamicViscosity? converted) + private bool TryToUnit(DynamicViscosityUnit unit, [NotNullWhen(true)] out DynamicViscosity? converted) { if (Unit == unit) { @@ -859,7 +860,7 @@ private bool TryToUnit(DynamicViscosityUnit unit, out DynamicViscosity? converte return true; } - converted = (Unit, unit) switch + DynamicViscosity? convertedOrNull = (Unit, unit) switch { // DynamicViscosityUnit -> BaseUnit (DynamicViscosityUnit.Centipoise, DynamicViscosityUnit.NewtonSecondPerMeterSquared) => new DynamicViscosity((_value / 10) * 1e-2d, DynamicViscosityUnit.NewtonSecondPerMeterSquared), @@ -883,10 +884,17 @@ private bool TryToUnit(DynamicViscosityUnit unit, out DynamicViscosity? converte (DynamicViscosityUnit.NewtonSecondPerMeterSquared, DynamicViscosityUnit.PoundPerFootSecond) => new DynamicViscosity(_value / 1.4881639, DynamicViscosityUnit.PoundPerFootSecond), (DynamicViscosityUnit.NewtonSecondPerMeterSquared, DynamicViscosityUnit.Reyn) => new DynamicViscosity(_value / 6.8947572931683613e3, DynamicViscosityUnit.Reyn), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -951,7 +959,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -963,7 +971,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -977,67 +985,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(DynamicViscosity)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(DynamicViscosity)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(DynamicViscosity)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(DynamicViscosity)) return this; @@ -1051,17 +1059,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(DynamicViscosity)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ElectricAdmittance.g.cs b/UnitsNet/GeneratedCode/Quantities/ElectricAdmittance.g.cs index 3b95388c54..2d1dcc221c 100644 --- a/UnitsNet/GeneratedCode/Quantities/ElectricAdmittance.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ElectricAdmittance.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -532,7 +533,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Elect /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ElectricAdmittance otherQuantity)) return false; @@ -564,7 +565,7 @@ public bool Equals(ElectricAdmittance other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ElectricAdmittance otherQuantity)) throw new ArgumentException("Expected type ElectricAdmittance.", nameof(obj)); @@ -734,7 +735,7 @@ public ElectricAdmittance ToUnit(ElectricAdmittanceUnit unit, UnitConverter unit /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ElectricAdmittanceUnit unit, out ElectricAdmittance? converted) + private bool TryToUnit(ElectricAdmittanceUnit unit, [NotNullWhen(true)] out ElectricAdmittance? converted) { if (Unit == unit) { @@ -742,7 +743,7 @@ private bool TryToUnit(ElectricAdmittanceUnit unit, out ElectricAdmittance? conv return true; } - converted = (Unit, unit) switch + ElectricAdmittance? convertedOrNull = (Unit, unit) switch { // ElectricAdmittanceUnit -> BaseUnit (ElectricAdmittanceUnit.Microsiemens, ElectricAdmittanceUnit.Siemens) => new ElectricAdmittance((_value) * 1e-6d, ElectricAdmittanceUnit.Siemens), @@ -754,10 +755,17 @@ private bool TryToUnit(ElectricAdmittanceUnit unit, out ElectricAdmittance? conv (ElectricAdmittanceUnit.Siemens, ElectricAdmittanceUnit.Millisiemens) => new ElectricAdmittance((_value) / 1e-3d, ElectricAdmittanceUnit.Millisiemens), (ElectricAdmittanceUnit.Siemens, ElectricAdmittanceUnit.Nanosiemens) => new ElectricAdmittance((_value) / 1e-9d, ElectricAdmittanceUnit.Nanosiemens), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -822,7 +830,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -834,7 +842,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -848,67 +856,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricAdmittance)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricAdmittance)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricAdmittance)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ElectricAdmittance)) return this; @@ -922,17 +930,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ElectricAdmittance)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ElectricCharge.g.cs b/UnitsNet/GeneratedCode/Quantities/ElectricCharge.g.cs index 43ab7dfe29..36b9a67a9a 100644 --- a/UnitsNet/GeneratedCode/Quantities/ElectricCharge.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ElectricCharge.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -554,7 +555,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Elect /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ElectricCharge otherQuantity)) return false; @@ -586,7 +587,7 @@ public bool Equals(ElectricCharge other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ElectricCharge otherQuantity)) throw new ArgumentException("Expected type ElectricCharge.", nameof(obj)); @@ -756,7 +757,7 @@ public ElectricCharge ToUnit(ElectricChargeUnit unit, UnitConverter unitConverte /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ElectricChargeUnit unit, out ElectricCharge? converted) + private bool TryToUnit(ElectricChargeUnit unit, [NotNullWhen(true)] out ElectricCharge? converted) { if (Unit == unit) { @@ -764,7 +765,7 @@ private bool TryToUnit(ElectricChargeUnit unit, out ElectricCharge? converted) return true; } - converted = (Unit, unit) switch + ElectricCharge? convertedOrNull = (Unit, unit) switch { // ElectricChargeUnit -> BaseUnit (ElectricChargeUnit.AmpereHour, ElectricChargeUnit.Coulomb) => new ElectricCharge(_value / 2.77777777777e-4, ElectricChargeUnit.Coulomb), @@ -778,10 +779,17 @@ private bool TryToUnit(ElectricChargeUnit unit, out ElectricCharge? converted) (ElectricChargeUnit.Coulomb, ElectricChargeUnit.MegaampereHour) => new ElectricCharge((_value * 2.77777777777e-4) / 1e6d, ElectricChargeUnit.MegaampereHour), (ElectricChargeUnit.Coulomb, ElectricChargeUnit.MilliampereHour) => new ElectricCharge((_value * 2.77777777777e-4) / 1e-3d, ElectricChargeUnit.MilliampereHour), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -846,7 +854,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -858,7 +866,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -872,67 +880,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricCharge)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricCharge)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricCharge)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ElectricCharge)) return this; @@ -946,17 +954,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ElectricCharge)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ElectricChargeDensity.g.cs b/UnitsNet/GeneratedCode/Quantities/ElectricChargeDensity.g.cs index e005500e9d..30ac513bca 100644 --- a/UnitsNet/GeneratedCode/Quantities/ElectricChargeDensity.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ElectricChargeDensity.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -478,7 +479,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Elect /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ElectricChargeDensity otherQuantity)) return false; @@ -510,7 +511,7 @@ public bool Equals(ElectricChargeDensity other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ElectricChargeDensity otherQuantity)) throw new ArgumentException("Expected type ElectricChargeDensity.", nameof(obj)); @@ -680,7 +681,7 @@ public ElectricChargeDensity ToUnit(ElectricChargeDensityUnit unit, UnitConverte /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ElectricChargeDensityUnit unit, out ElectricChargeDensity? converted) + private bool TryToUnit(ElectricChargeDensityUnit unit, [NotNullWhen(true)] out ElectricChargeDensity? converted) { if (Unit == unit) { @@ -688,16 +689,23 @@ private bool TryToUnit(ElectricChargeDensityUnit unit, out ElectricChargeDensity return true; } - converted = (Unit, unit) switch + ElectricChargeDensity? convertedOrNull = (Unit, unit) switch { // ElectricChargeDensityUnit -> BaseUnit // BaseUnit -> ElectricChargeDensityUnit - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -762,7 +770,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -774,7 +782,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -788,67 +796,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricChargeDensity)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricChargeDensity)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricChargeDensity)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ElectricChargeDensity)) return this; @@ -862,17 +870,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ElectricChargeDensity)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ElectricConductance.g.cs b/UnitsNet/GeneratedCode/Quantities/ElectricConductance.g.cs index d58c0a5081..b33d4813c0 100644 --- a/UnitsNet/GeneratedCode/Quantities/ElectricConductance.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ElectricConductance.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -516,7 +517,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Elect /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ElectricConductance otherQuantity)) return false; @@ -548,7 +549,7 @@ public bool Equals(ElectricConductance other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ElectricConductance otherQuantity)) throw new ArgumentException("Expected type ElectricConductance.", nameof(obj)); @@ -718,7 +719,7 @@ public ElectricConductance ToUnit(ElectricConductanceUnit unit, UnitConverter un /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ElectricConductanceUnit unit, out ElectricConductance? converted) + private bool TryToUnit(ElectricConductanceUnit unit, [NotNullWhen(true)] out ElectricConductance? converted) { if (Unit == unit) { @@ -726,7 +727,7 @@ private bool TryToUnit(ElectricConductanceUnit unit, out ElectricConductance? co return true; } - converted = (Unit, unit) switch + ElectricConductance? convertedOrNull = (Unit, unit) switch { // ElectricConductanceUnit -> BaseUnit (ElectricConductanceUnit.Microsiemens, ElectricConductanceUnit.Siemens) => new ElectricConductance((_value) * 1e-6d, ElectricConductanceUnit.Siemens), @@ -736,10 +737,17 @@ private bool TryToUnit(ElectricConductanceUnit unit, out ElectricConductance? co (ElectricConductanceUnit.Siemens, ElectricConductanceUnit.Microsiemens) => new ElectricConductance((_value) / 1e-6d, ElectricConductanceUnit.Microsiemens), (ElectricConductanceUnit.Siemens, ElectricConductanceUnit.Millisiemens) => new ElectricConductance((_value) / 1e-3d, ElectricConductanceUnit.Millisiemens), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -804,7 +812,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -816,7 +824,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -830,67 +838,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricConductance)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricConductance)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricConductance)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ElectricConductance)) return this; @@ -904,17 +912,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ElectricConductance)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ElectricConductivity.g.cs b/UnitsNet/GeneratedCode/Quantities/ElectricConductivity.g.cs index 4acf19915d..5718108366 100644 --- a/UnitsNet/GeneratedCode/Quantities/ElectricConductivity.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ElectricConductivity.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -573,7 +574,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Elect /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ElectricConductivity otherQuantity)) return false; @@ -605,7 +606,7 @@ public bool Equals(ElectricConductivity other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ElectricConductivity otherQuantity)) throw new ArgumentException("Expected type ElectricConductivity.", nameof(obj)); @@ -775,7 +776,7 @@ public ElectricConductivity ToUnit(ElectricConductivityUnit unit, UnitConverter /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ElectricConductivityUnit unit, out ElectricConductivity? converted) + private bool TryToUnit(ElectricConductivityUnit unit, [NotNullWhen(true)] out ElectricConductivity? converted) { if (Unit == unit) { @@ -783,7 +784,7 @@ private bool TryToUnit(ElectricConductivityUnit unit, out ElectricConductivity? return true; } - converted = (Unit, unit) switch + ElectricConductivity? convertedOrNull = (Unit, unit) switch { // ElectricConductivityUnit -> BaseUnit (ElectricConductivityUnit.MicrosiemensPerCentimeter, ElectricConductivityUnit.SiemensPerMeter) => new ElectricConductivity((_value * 1e2) * 1e-6d, ElectricConductivityUnit.SiemensPerMeter), @@ -799,10 +800,17 @@ private bool TryToUnit(ElectricConductivityUnit unit, out ElectricConductivity? (ElectricConductivityUnit.SiemensPerMeter, ElectricConductivityUnit.SiemensPerFoot) => new ElectricConductivity(_value / 3.2808398950131234, ElectricConductivityUnit.SiemensPerFoot), (ElectricConductivityUnit.SiemensPerMeter, ElectricConductivityUnit.SiemensPerInch) => new ElectricConductivity(_value / 3.937007874015748e1, ElectricConductivityUnit.SiemensPerInch), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -867,7 +875,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -879,7 +887,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -893,67 +901,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricConductivity)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricConductivity)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricConductivity)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ElectricConductivity)) return this; @@ -967,17 +975,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ElectricConductivity)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ElectricCurrent.g.cs b/UnitsNet/GeneratedCode/Quantities/ElectricCurrent.g.cs index 95ec5eab83..df17e0900f 100644 --- a/UnitsNet/GeneratedCode/Quantities/ElectricCurrent.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ElectricCurrent.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -608,7 +609,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Elect /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ElectricCurrent otherQuantity)) return false; @@ -640,7 +641,7 @@ public bool Equals(ElectricCurrent other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ElectricCurrent otherQuantity)) throw new ArgumentException("Expected type ElectricCurrent.", nameof(obj)); @@ -810,7 +811,7 @@ public ElectricCurrent ToUnit(ElectricCurrentUnit unit, UnitConverter unitConver /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ElectricCurrentUnit unit, out ElectricCurrent? converted) + private bool TryToUnit(ElectricCurrentUnit unit, [NotNullWhen(true)] out ElectricCurrent? converted) { if (Unit == unit) { @@ -818,7 +819,7 @@ private bool TryToUnit(ElectricCurrentUnit unit, out ElectricCurrent? converted) return true; } - converted = (Unit, unit) switch + ElectricCurrent? convertedOrNull = (Unit, unit) switch { // ElectricCurrentUnit -> BaseUnit (ElectricCurrentUnit.Centiampere, ElectricCurrentUnit.Ampere) => new ElectricCurrent((_value) * 1e-2d, ElectricCurrentUnit.Ampere), @@ -838,10 +839,17 @@ private bool TryToUnit(ElectricCurrentUnit unit, out ElectricCurrent? converted) (ElectricCurrentUnit.Ampere, ElectricCurrentUnit.Nanoampere) => new ElectricCurrent((_value) / 1e-9d, ElectricCurrentUnit.Nanoampere), (ElectricCurrentUnit.Ampere, ElectricCurrentUnit.Picoampere) => new ElectricCurrent((_value) / 1e-12d, ElectricCurrentUnit.Picoampere), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -906,7 +914,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -918,7 +926,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -932,67 +940,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricCurrent)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricCurrent)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricCurrent)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ElectricCurrent)) return this; @@ -1006,17 +1014,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ElectricCurrent)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ElectricCurrentDensity.g.cs b/UnitsNet/GeneratedCode/Quantities/ElectricCurrentDensity.g.cs index a4aeb7d9e9..6d3bb4593a 100644 --- a/UnitsNet/GeneratedCode/Quantities/ElectricCurrentDensity.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ElectricCurrentDensity.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -516,7 +517,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Elect /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ElectricCurrentDensity otherQuantity)) return false; @@ -548,7 +549,7 @@ public bool Equals(ElectricCurrentDensity other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ElectricCurrentDensity otherQuantity)) throw new ArgumentException("Expected type ElectricCurrentDensity.", nameof(obj)); @@ -718,7 +719,7 @@ public ElectricCurrentDensity ToUnit(ElectricCurrentDensityUnit unit, UnitConver /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ElectricCurrentDensityUnit unit, out ElectricCurrentDensity? converted) + private bool TryToUnit(ElectricCurrentDensityUnit unit, [NotNullWhen(true)] out ElectricCurrentDensity? converted) { if (Unit == unit) { @@ -726,7 +727,7 @@ private bool TryToUnit(ElectricCurrentDensityUnit unit, out ElectricCurrentDensi return true; } - converted = (Unit, unit) switch + ElectricCurrentDensity? convertedOrNull = (Unit, unit) switch { // ElectricCurrentDensityUnit -> BaseUnit (ElectricCurrentDensityUnit.AmperePerSquareFoot, ElectricCurrentDensityUnit.AmperePerSquareMeter) => new ElectricCurrentDensity(_value * 1.0763910416709722e1, ElectricCurrentDensityUnit.AmperePerSquareMeter), @@ -736,10 +737,17 @@ private bool TryToUnit(ElectricCurrentDensityUnit unit, out ElectricCurrentDensi (ElectricCurrentDensityUnit.AmperePerSquareMeter, ElectricCurrentDensityUnit.AmperePerSquareFoot) => new ElectricCurrentDensity(_value / 1.0763910416709722e1, ElectricCurrentDensityUnit.AmperePerSquareFoot), (ElectricCurrentDensityUnit.AmperePerSquareMeter, ElectricCurrentDensityUnit.AmperePerSquareInch) => new ElectricCurrentDensity(_value / 1.5500031000062000e3, ElectricCurrentDensityUnit.AmperePerSquareInch), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -804,7 +812,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -816,7 +824,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -830,67 +838,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricCurrentDensity)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricCurrentDensity)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricCurrentDensity)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ElectricCurrentDensity)) return this; @@ -904,17 +912,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ElectricCurrentDensity)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ElectricCurrentGradient.g.cs b/UnitsNet/GeneratedCode/Quantities/ElectricCurrentGradient.g.cs index 75f0a4b101..577732eb7d 100644 --- a/UnitsNet/GeneratedCode/Quantities/ElectricCurrentGradient.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ElectricCurrentGradient.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -532,7 +533,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Elect /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ElectricCurrentGradient otherQuantity)) return false; @@ -564,7 +565,7 @@ public bool Equals(ElectricCurrentGradient other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ElectricCurrentGradient otherQuantity)) throw new ArgumentException("Expected type ElectricCurrentGradient.", nameof(obj)); @@ -734,7 +735,7 @@ public ElectricCurrentGradient ToUnit(ElectricCurrentGradientUnit unit, UnitConv /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ElectricCurrentGradientUnit unit, out ElectricCurrentGradient? converted) + private bool TryToUnit(ElectricCurrentGradientUnit unit, [NotNullWhen(true)] out ElectricCurrentGradient? converted) { if (Unit == unit) { @@ -742,7 +743,7 @@ private bool TryToUnit(ElectricCurrentGradientUnit unit, out ElectricCurrentGrad return true; } - converted = (Unit, unit) switch + ElectricCurrentGradient? convertedOrNull = (Unit, unit) switch { // ElectricCurrentGradientUnit -> BaseUnit (ElectricCurrentGradientUnit.AmperePerMicrosecond, ElectricCurrentGradientUnit.AmperePerSecond) => new ElectricCurrentGradient(_value * 1E6, ElectricCurrentGradientUnit.AmperePerSecond), @@ -754,10 +755,17 @@ private bool TryToUnit(ElectricCurrentGradientUnit unit, out ElectricCurrentGrad (ElectricCurrentGradientUnit.AmperePerSecond, ElectricCurrentGradientUnit.AmperePerMillisecond) => new ElectricCurrentGradient(_value / 1E3, ElectricCurrentGradientUnit.AmperePerMillisecond), (ElectricCurrentGradientUnit.AmperePerSecond, ElectricCurrentGradientUnit.AmperePerNanosecond) => new ElectricCurrentGradient(_value / 1E9, ElectricCurrentGradientUnit.AmperePerNanosecond), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -822,7 +830,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -834,7 +842,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -848,67 +856,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricCurrentGradient)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricCurrentGradient)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricCurrentGradient)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ElectricCurrentGradient)) return this; @@ -922,17 +930,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ElectricCurrentGradient)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ElectricField.g.cs b/UnitsNet/GeneratedCode/Quantities/ElectricField.g.cs index b17fc5a194..6e17384f3f 100644 --- a/UnitsNet/GeneratedCode/Quantities/ElectricField.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ElectricField.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -478,7 +479,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Elect /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ElectricField otherQuantity)) return false; @@ -510,7 +511,7 @@ public bool Equals(ElectricField other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ElectricField otherQuantity)) throw new ArgumentException("Expected type ElectricField.", nameof(obj)); @@ -680,7 +681,7 @@ public ElectricField ToUnit(ElectricFieldUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ElectricFieldUnit unit, out ElectricField? converted) + private bool TryToUnit(ElectricFieldUnit unit, [NotNullWhen(true)] out ElectricField? converted) { if (Unit == unit) { @@ -688,16 +689,23 @@ private bool TryToUnit(ElectricFieldUnit unit, out ElectricField? converted) return true; } - converted = (Unit, unit) switch + ElectricField? convertedOrNull = (Unit, unit) switch { // ElectricFieldUnit -> BaseUnit // BaseUnit -> ElectricFieldUnit - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -762,7 +770,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -774,7 +782,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -788,67 +796,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricField)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricField)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricField)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ElectricField)) return this; @@ -862,17 +870,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ElectricField)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ElectricInductance.g.cs b/UnitsNet/GeneratedCode/Quantities/ElectricInductance.g.cs index 00492301b1..39c37813fb 100644 --- a/UnitsNet/GeneratedCode/Quantities/ElectricInductance.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ElectricInductance.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -535,7 +536,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Elect /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ElectricInductance otherQuantity)) return false; @@ -567,7 +568,7 @@ public bool Equals(ElectricInductance other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ElectricInductance otherQuantity)) throw new ArgumentException("Expected type ElectricInductance.", nameof(obj)); @@ -737,7 +738,7 @@ public ElectricInductance ToUnit(ElectricInductanceUnit unit, UnitConverter unit /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ElectricInductanceUnit unit, out ElectricInductance? converted) + private bool TryToUnit(ElectricInductanceUnit unit, [NotNullWhen(true)] out ElectricInductance? converted) { if (Unit == unit) { @@ -745,7 +746,7 @@ private bool TryToUnit(ElectricInductanceUnit unit, out ElectricInductance? conv return true; } - converted = (Unit, unit) switch + ElectricInductance? convertedOrNull = (Unit, unit) switch { // ElectricInductanceUnit -> BaseUnit (ElectricInductanceUnit.Microhenry, ElectricInductanceUnit.Henry) => new ElectricInductance((_value) * 1e-6d, ElectricInductanceUnit.Henry), @@ -757,10 +758,17 @@ private bool TryToUnit(ElectricInductanceUnit unit, out ElectricInductance? conv (ElectricInductanceUnit.Henry, ElectricInductanceUnit.Millihenry) => new ElectricInductance((_value) / 1e-3d, ElectricInductanceUnit.Millihenry), (ElectricInductanceUnit.Henry, ElectricInductanceUnit.Nanohenry) => new ElectricInductance((_value) / 1e-9d, ElectricInductanceUnit.Nanohenry), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -825,7 +833,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -837,7 +845,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -851,67 +859,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricInductance)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricInductance)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricInductance)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ElectricInductance)) return this; @@ -925,17 +933,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ElectricInductance)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ElectricPotential.g.cs b/UnitsNet/GeneratedCode/Quantities/ElectricPotential.g.cs index 448cb4d46a..840b5cb912 100644 --- a/UnitsNet/GeneratedCode/Quantities/ElectricPotential.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ElectricPotential.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -556,7 +557,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Elect /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ElectricPotential otherQuantity)) return false; @@ -588,7 +589,7 @@ public bool Equals(ElectricPotential other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ElectricPotential otherQuantity)) throw new ArgumentException("Expected type ElectricPotential.", nameof(obj)); @@ -758,7 +759,7 @@ public ElectricPotential ToUnit(ElectricPotentialUnit unit, UnitConverter unitCo /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ElectricPotentialUnit unit, out ElectricPotential? converted) + private bool TryToUnit(ElectricPotentialUnit unit, [NotNullWhen(true)] out ElectricPotential? converted) { if (Unit == unit) { @@ -766,7 +767,7 @@ private bool TryToUnit(ElectricPotentialUnit unit, out ElectricPotential? conver return true; } - converted = (Unit, unit) switch + ElectricPotential? convertedOrNull = (Unit, unit) switch { // ElectricPotentialUnit -> BaseUnit (ElectricPotentialUnit.Kilovolt, ElectricPotentialUnit.Volt) => new ElectricPotential((_value) * 1e3d, ElectricPotentialUnit.Volt), @@ -780,10 +781,17 @@ private bool TryToUnit(ElectricPotentialUnit unit, out ElectricPotential? conver (ElectricPotentialUnit.Volt, ElectricPotentialUnit.Microvolt) => new ElectricPotential((_value) / 1e-6d, ElectricPotentialUnit.Microvolt), (ElectricPotentialUnit.Volt, ElectricPotentialUnit.Millivolt) => new ElectricPotential((_value) / 1e-3d, ElectricPotentialUnit.Millivolt), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -848,7 +856,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -860,7 +868,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -874,67 +882,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricPotential)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricPotential)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricPotential)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ElectricPotential)) return this; @@ -948,17 +956,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ElectricPotential)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ElectricPotentialAc.g.cs b/UnitsNet/GeneratedCode/Quantities/ElectricPotentialAc.g.cs index fe6c3b384b..f1151d4544 100644 --- a/UnitsNet/GeneratedCode/Quantities/ElectricPotentialAc.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ElectricPotentialAc.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -551,7 +552,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Elect /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ElectricPotentialAc otherQuantity)) return false; @@ -583,7 +584,7 @@ public bool Equals(ElectricPotentialAc other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ElectricPotentialAc otherQuantity)) throw new ArgumentException("Expected type ElectricPotentialAc.", nameof(obj)); @@ -753,7 +754,7 @@ public ElectricPotentialAc ToUnit(ElectricPotentialAcUnit unit, UnitConverter un /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ElectricPotentialAcUnit unit, out ElectricPotentialAc? converted) + private bool TryToUnit(ElectricPotentialAcUnit unit, [NotNullWhen(true)] out ElectricPotentialAc? converted) { if (Unit == unit) { @@ -761,7 +762,7 @@ private bool TryToUnit(ElectricPotentialAcUnit unit, out ElectricPotentialAc? co return true; } - converted = (Unit, unit) switch + ElectricPotentialAc? convertedOrNull = (Unit, unit) switch { // ElectricPotentialAcUnit -> BaseUnit (ElectricPotentialAcUnit.KilovoltAc, ElectricPotentialAcUnit.VoltAc) => new ElectricPotentialAc((_value) * 1e3d, ElectricPotentialAcUnit.VoltAc), @@ -775,10 +776,17 @@ private bool TryToUnit(ElectricPotentialAcUnit unit, out ElectricPotentialAc? co (ElectricPotentialAcUnit.VoltAc, ElectricPotentialAcUnit.MicrovoltAc) => new ElectricPotentialAc((_value) / 1e-6d, ElectricPotentialAcUnit.MicrovoltAc), (ElectricPotentialAcUnit.VoltAc, ElectricPotentialAcUnit.MillivoltAc) => new ElectricPotentialAc((_value) / 1e-3d, ElectricPotentialAcUnit.MillivoltAc), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -843,7 +851,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -855,7 +863,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -869,67 +877,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricPotentialAc)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricPotentialAc)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricPotentialAc)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ElectricPotentialAc)) return this; @@ -943,17 +951,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ElectricPotentialAc)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ElectricPotentialChangeRate.g.cs b/UnitsNet/GeneratedCode/Quantities/ElectricPotentialChangeRate.g.cs index 08f359e742..12bd47e2a8 100644 --- a/UnitsNet/GeneratedCode/Quantities/ElectricPotentialChangeRate.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ElectricPotentialChangeRate.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -836,7 +837,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Elect /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ElectricPotentialChangeRate otherQuantity)) return false; @@ -868,7 +869,7 @@ public bool Equals(ElectricPotentialChangeRate other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ElectricPotentialChangeRate otherQuantity)) throw new ArgumentException("Expected type ElectricPotentialChangeRate.", nameof(obj)); @@ -1038,7 +1039,7 @@ public ElectricPotentialChangeRate ToUnit(ElectricPotentialChangeRateUnit unit, /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ElectricPotentialChangeRateUnit unit, out ElectricPotentialChangeRate? converted) + private bool TryToUnit(ElectricPotentialChangeRateUnit unit, [NotNullWhen(true)] out ElectricPotentialChangeRate? converted) { if (Unit == unit) { @@ -1046,7 +1047,7 @@ private bool TryToUnit(ElectricPotentialChangeRateUnit unit, out ElectricPotenti return true; } - converted = (Unit, unit) switch + ElectricPotentialChangeRate? convertedOrNull = (Unit, unit) switch { // ElectricPotentialChangeRateUnit -> BaseUnit (ElectricPotentialChangeRateUnit.KilovoltPerHour, ElectricPotentialChangeRateUnit.VoltPerSecond) => new ElectricPotentialChangeRate((_value / 3600) * 1e3d, ElectricPotentialChangeRateUnit.VoltPerSecond), @@ -1090,10 +1091,17 @@ private bool TryToUnit(ElectricPotentialChangeRateUnit unit, out ElectricPotenti (ElectricPotentialChangeRateUnit.VoltPerSecond, ElectricPotentialChangeRateUnit.VoltPerMicrosecond) => new ElectricPotentialChangeRate(_value / 1E6, ElectricPotentialChangeRateUnit.VoltPerMicrosecond), (ElectricPotentialChangeRateUnit.VoltPerSecond, ElectricPotentialChangeRateUnit.VoltPerMinute) => new ElectricPotentialChangeRate(_value * 60, ElectricPotentialChangeRateUnit.VoltPerMinute), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1158,7 +1166,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1170,7 +1178,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1184,67 +1192,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricPotentialChangeRate)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricPotentialChangeRate)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricPotentialChangeRate)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ElectricPotentialChangeRate)) return this; @@ -1258,17 +1266,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ElectricPotentialChangeRate)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ElectricPotentialDc.g.cs b/UnitsNet/GeneratedCode/Quantities/ElectricPotentialDc.g.cs index ac3ec904c3..7ce7898c1b 100644 --- a/UnitsNet/GeneratedCode/Quantities/ElectricPotentialDc.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ElectricPotentialDc.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -551,7 +552,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Elect /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ElectricPotentialDc otherQuantity)) return false; @@ -583,7 +584,7 @@ public bool Equals(ElectricPotentialDc other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ElectricPotentialDc otherQuantity)) throw new ArgumentException("Expected type ElectricPotentialDc.", nameof(obj)); @@ -753,7 +754,7 @@ public ElectricPotentialDc ToUnit(ElectricPotentialDcUnit unit, UnitConverter un /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ElectricPotentialDcUnit unit, out ElectricPotentialDc? converted) + private bool TryToUnit(ElectricPotentialDcUnit unit, [NotNullWhen(true)] out ElectricPotentialDc? converted) { if (Unit == unit) { @@ -761,7 +762,7 @@ private bool TryToUnit(ElectricPotentialDcUnit unit, out ElectricPotentialDc? co return true; } - converted = (Unit, unit) switch + ElectricPotentialDc? convertedOrNull = (Unit, unit) switch { // ElectricPotentialDcUnit -> BaseUnit (ElectricPotentialDcUnit.KilovoltDc, ElectricPotentialDcUnit.VoltDc) => new ElectricPotentialDc((_value) * 1e3d, ElectricPotentialDcUnit.VoltDc), @@ -775,10 +776,17 @@ private bool TryToUnit(ElectricPotentialDcUnit unit, out ElectricPotentialDc? co (ElectricPotentialDcUnit.VoltDc, ElectricPotentialDcUnit.MicrovoltDc) => new ElectricPotentialDc((_value) / 1e-6d, ElectricPotentialDcUnit.MicrovoltDc), (ElectricPotentialDcUnit.VoltDc, ElectricPotentialDcUnit.MillivoltDc) => new ElectricPotentialDc((_value) / 1e-3d, ElectricPotentialDcUnit.MillivoltDc), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -843,7 +851,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -855,7 +863,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -869,67 +877,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricPotentialDc)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricPotentialDc)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricPotentialDc)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ElectricPotentialDc)) return this; @@ -943,17 +951,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ElectricPotentialDc)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ElectricResistance.g.cs b/UnitsNet/GeneratedCode/Quantities/ElectricResistance.g.cs index 3b797e76a6..2e69b277b8 100644 --- a/UnitsNet/GeneratedCode/Quantities/ElectricResistance.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ElectricResistance.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -570,7 +571,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Elect /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ElectricResistance otherQuantity)) return false; @@ -602,7 +603,7 @@ public bool Equals(ElectricResistance other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ElectricResistance otherQuantity)) throw new ArgumentException("Expected type ElectricResistance.", nameof(obj)); @@ -772,7 +773,7 @@ public ElectricResistance ToUnit(ElectricResistanceUnit unit, UnitConverter unit /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ElectricResistanceUnit unit, out ElectricResistance? converted) + private bool TryToUnit(ElectricResistanceUnit unit, [NotNullWhen(true)] out ElectricResistance? converted) { if (Unit == unit) { @@ -780,7 +781,7 @@ private bool TryToUnit(ElectricResistanceUnit unit, out ElectricResistance? conv return true; } - converted = (Unit, unit) switch + ElectricResistance? convertedOrNull = (Unit, unit) switch { // ElectricResistanceUnit -> BaseUnit (ElectricResistanceUnit.Gigaohm, ElectricResistanceUnit.Ohm) => new ElectricResistance((_value) * 1e9d, ElectricResistanceUnit.Ohm), @@ -796,10 +797,17 @@ private bool TryToUnit(ElectricResistanceUnit unit, out ElectricResistance? conv (ElectricResistanceUnit.Ohm, ElectricResistanceUnit.Microohm) => new ElectricResistance((_value) / 1e-6d, ElectricResistanceUnit.Microohm), (ElectricResistanceUnit.Ohm, ElectricResistanceUnit.Milliohm) => new ElectricResistance((_value) / 1e-3d, ElectricResistanceUnit.Milliohm), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -864,7 +872,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -876,7 +884,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -890,67 +898,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricResistance)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricResistance)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricResistance)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ElectricResistance)) return this; @@ -964,17 +972,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ElectricResistance)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ElectricResistivity.g.cs b/UnitsNet/GeneratedCode/Quantities/ElectricResistivity.g.cs index 09e09fe932..66e4dc877c 100644 --- a/UnitsNet/GeneratedCode/Quantities/ElectricResistivity.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ElectricResistivity.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -725,7 +726,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Elect /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ElectricResistivity otherQuantity)) return false; @@ -757,7 +758,7 @@ public bool Equals(ElectricResistivity other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ElectricResistivity otherQuantity)) throw new ArgumentException("Expected type ElectricResistivity.", nameof(obj)); @@ -927,7 +928,7 @@ public ElectricResistivity ToUnit(ElectricResistivityUnit unit, UnitConverter un /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ElectricResistivityUnit unit, out ElectricResistivity? converted) + private bool TryToUnit(ElectricResistivityUnit unit, [NotNullWhen(true)] out ElectricResistivity? converted) { if (Unit == unit) { @@ -935,7 +936,7 @@ private bool TryToUnit(ElectricResistivityUnit unit, out ElectricResistivity? co return true; } - converted = (Unit, unit) switch + ElectricResistivity? convertedOrNull = (Unit, unit) switch { // ElectricResistivityUnit -> BaseUnit (ElectricResistivityUnit.KiloohmCentimeter, ElectricResistivityUnit.OhmMeter) => new ElectricResistivity((_value / 100) * 1e3d, ElectricResistivityUnit.OhmMeter), @@ -967,10 +968,17 @@ private bool TryToUnit(ElectricResistivityUnit unit, out ElectricResistivity? co (ElectricResistivityUnit.OhmMeter, ElectricResistivityUnit.PicoohmCentimeter) => new ElectricResistivity((_value * 100) / 1e-12d, ElectricResistivityUnit.PicoohmCentimeter), (ElectricResistivityUnit.OhmMeter, ElectricResistivityUnit.PicoohmMeter) => new ElectricResistivity((_value) / 1e-12d, ElectricResistivityUnit.PicoohmMeter), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1035,7 +1043,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1047,7 +1055,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1061,67 +1069,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricResistivity)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricResistivity)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricResistivity)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ElectricResistivity)) return this; @@ -1135,17 +1143,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ElectricResistivity)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ElectricSurfaceChargeDensity.g.cs b/UnitsNet/GeneratedCode/Quantities/ElectricSurfaceChargeDensity.g.cs index 9237afd6ec..f4fc4e817d 100644 --- a/UnitsNet/GeneratedCode/Quantities/ElectricSurfaceChargeDensity.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ElectricSurfaceChargeDensity.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -516,7 +517,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Elect /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ElectricSurfaceChargeDensity otherQuantity)) return false; @@ -548,7 +549,7 @@ public bool Equals(ElectricSurfaceChargeDensity other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ElectricSurfaceChargeDensity otherQuantity)) throw new ArgumentException("Expected type ElectricSurfaceChargeDensity.", nameof(obj)); @@ -718,7 +719,7 @@ public ElectricSurfaceChargeDensity ToUnit(ElectricSurfaceChargeDensityUnit unit /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ElectricSurfaceChargeDensityUnit unit, out ElectricSurfaceChargeDensity? converted) + private bool TryToUnit(ElectricSurfaceChargeDensityUnit unit, [NotNullWhen(true)] out ElectricSurfaceChargeDensity? converted) { if (Unit == unit) { @@ -726,7 +727,7 @@ private bool TryToUnit(ElectricSurfaceChargeDensityUnit unit, out ElectricSurfac return true; } - converted = (Unit, unit) switch + ElectricSurfaceChargeDensity? convertedOrNull = (Unit, unit) switch { // ElectricSurfaceChargeDensityUnit -> BaseUnit (ElectricSurfaceChargeDensityUnit.CoulombPerSquareCentimeter, ElectricSurfaceChargeDensityUnit.CoulombPerSquareMeter) => new ElectricSurfaceChargeDensity(_value * 1.0e4, ElectricSurfaceChargeDensityUnit.CoulombPerSquareMeter), @@ -736,10 +737,17 @@ private bool TryToUnit(ElectricSurfaceChargeDensityUnit unit, out ElectricSurfac (ElectricSurfaceChargeDensityUnit.CoulombPerSquareMeter, ElectricSurfaceChargeDensityUnit.CoulombPerSquareCentimeter) => new ElectricSurfaceChargeDensity(_value / 1.0e4, ElectricSurfaceChargeDensityUnit.CoulombPerSquareCentimeter), (ElectricSurfaceChargeDensityUnit.CoulombPerSquareMeter, ElectricSurfaceChargeDensityUnit.CoulombPerSquareInch) => new ElectricSurfaceChargeDensity(_value / 1.5500031000062000e3, ElectricSurfaceChargeDensityUnit.CoulombPerSquareInch), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -804,7 +812,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -816,7 +824,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -830,67 +838,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricSurfaceChargeDensity)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricSurfaceChargeDensity)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ElectricSurfaceChargeDensity)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ElectricSurfaceChargeDensity)) return this; @@ -904,17 +912,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ElectricSurfaceChargeDensity)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Energy.g.cs b/UnitsNet/GeneratedCode/Quantities/Energy.g.cs index 4dc79514d1..f494a8a7f1 100644 --- a/UnitsNet/GeneratedCode/Quantities/Energy.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Energy.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -1199,7 +1200,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Energ /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Energy otherQuantity)) return false; @@ -1231,7 +1232,7 @@ public bool Equals(Energy other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Energy otherQuantity)) throw new ArgumentException("Expected type Energy.", nameof(obj)); @@ -1401,7 +1402,7 @@ public Energy ToUnit(EnergyUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(EnergyUnit unit, out Energy? converted) + private bool TryToUnit(EnergyUnit unit, [NotNullWhen(true)] out Energy? converted) { if (Unit == unit) { @@ -1409,7 +1410,7 @@ private bool TryToUnit(EnergyUnit unit, out Energy? converted) return true; } - converted = (Unit, unit) switch + Energy? convertedOrNull = (Unit, unit) switch { // EnergyUnit -> BaseUnit (EnergyUnit.BritishThermalUnit, EnergyUnit.Joule) => new Energy(_value * 1055.05585262, EnergyUnit.Joule), @@ -1489,10 +1490,17 @@ private bool TryToUnit(EnergyUnit unit, out Energy? converted) (EnergyUnit.Joule, EnergyUnit.WattDay) => new Energy(_value / (24 * 3600d), EnergyUnit.WattDay), (EnergyUnit.Joule, EnergyUnit.WattHour) => new Energy(_value / 3600d, EnergyUnit.WattHour), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1557,7 +1565,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1569,7 +1577,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1583,67 +1591,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Energy)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Energy)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Energy)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Energy)) return this; @@ -1657,17 +1665,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Energy)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/EnergyDensity.g.cs b/UnitsNet/GeneratedCode/Quantities/EnergyDensity.g.cs index ff4e567ac2..8146a11acf 100644 --- a/UnitsNet/GeneratedCode/Quantities/EnergyDensity.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/EnergyDensity.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -684,7 +685,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Energ /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is EnergyDensity otherQuantity)) return false; @@ -716,7 +717,7 @@ public bool Equals(EnergyDensity other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is EnergyDensity otherQuantity)) throw new ArgumentException("Expected type EnergyDensity.", nameof(obj)); @@ -886,7 +887,7 @@ public EnergyDensity ToUnit(EnergyDensityUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(EnergyDensityUnit unit, out EnergyDensity? converted) + private bool TryToUnit(EnergyDensityUnit unit, [NotNullWhen(true)] out EnergyDensity? converted) { if (Unit == unit) { @@ -894,7 +895,7 @@ private bool TryToUnit(EnergyDensityUnit unit, out EnergyDensity? converted) return true; } - converted = (Unit, unit) switch + EnergyDensity? convertedOrNull = (Unit, unit) switch { // EnergyDensityUnit -> BaseUnit (EnergyDensityUnit.GigajoulePerCubicMeter, EnergyDensityUnit.JoulePerCubicMeter) => new EnergyDensity((_value) * 1e9d, EnergyDensityUnit.JoulePerCubicMeter), @@ -922,10 +923,17 @@ private bool TryToUnit(EnergyDensityUnit unit, out EnergyDensity? converted) (EnergyDensityUnit.JoulePerCubicMeter, EnergyDensityUnit.TerawattHourPerCubicMeter) => new EnergyDensity((_value / 3.6e+3) / 1e12d, EnergyDensityUnit.TerawattHourPerCubicMeter), (EnergyDensityUnit.JoulePerCubicMeter, EnergyDensityUnit.WattHourPerCubicMeter) => new EnergyDensity(_value / 3.6e+3, EnergyDensityUnit.WattHourPerCubicMeter), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -990,7 +998,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1002,7 +1010,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1016,67 +1024,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(EnergyDensity)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(EnergyDensity)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(EnergyDensity)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(EnergyDensity)) return this; @@ -1090,17 +1098,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(EnergyDensity)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Entropy.g.cs b/UnitsNet/GeneratedCode/Quantities/Entropy.g.cs index 009703b3a0..2c3f7a80bd 100644 --- a/UnitsNet/GeneratedCode/Quantities/Entropy.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Entropy.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -589,7 +590,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Entro /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Entropy otherQuantity)) return false; @@ -621,7 +622,7 @@ public bool Equals(Entropy other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Entropy otherQuantity)) throw new ArgumentException("Expected type Entropy.", nameof(obj)); @@ -791,7 +792,7 @@ public Entropy ToUnit(EntropyUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(EntropyUnit unit, out Entropy? converted) + private bool TryToUnit(EntropyUnit unit, [NotNullWhen(true)] out Entropy? converted) { if (Unit == unit) { @@ -799,7 +800,7 @@ private bool TryToUnit(EntropyUnit unit, out Entropy? converted) return true; } - converted = (Unit, unit) switch + Entropy? convertedOrNull = (Unit, unit) switch { // EntropyUnit -> BaseUnit (EntropyUnit.CaloriePerKelvin, EntropyUnit.JoulePerKelvin) => new Entropy(_value * 4.184, EntropyUnit.JoulePerKelvin), @@ -817,10 +818,17 @@ private bool TryToUnit(EntropyUnit unit, out Entropy? converted) (EntropyUnit.JoulePerKelvin, EntropyUnit.KilojoulePerKelvin) => new Entropy((_value) / 1e3d, EntropyUnit.KilojoulePerKelvin), (EntropyUnit.JoulePerKelvin, EntropyUnit.MegajoulePerKelvin) => new Entropy((_value) / 1e6d, EntropyUnit.MegajoulePerKelvin), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -885,7 +893,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -897,7 +905,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -911,67 +919,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Entropy)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Entropy)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Entropy)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Entropy)) return this; @@ -985,17 +993,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Entropy)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Force.g.cs b/UnitsNet/GeneratedCode/Quantities/Force.g.cs index fcd7f31a1b..4e088bff93 100644 --- a/UnitsNet/GeneratedCode/Quantities/Force.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Force.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -754,7 +755,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Force /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Force otherQuantity)) return false; @@ -786,7 +787,7 @@ public bool Equals(Force other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Force otherQuantity)) throw new ArgumentException("Expected type Force.", nameof(obj)); @@ -956,7 +957,7 @@ public Force ToUnit(ForceUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ForceUnit unit, out Force? converted) + private bool TryToUnit(ForceUnit unit, [NotNullWhen(true)] out Force? converted) { if (Unit == unit) { @@ -964,7 +965,7 @@ private bool TryToUnit(ForceUnit unit, out Force? converted) return true; } - converted = (Unit, unit) switch + Force? convertedOrNull = (Unit, unit) switch { // ForceUnit -> BaseUnit (ForceUnit.Decanewton, ForceUnit.Newton) => new Force((_value) * 1e1d, ForceUnit.Newton), @@ -998,10 +999,17 @@ private bool TryToUnit(ForceUnit unit, out Force? converted) (ForceUnit.Newton, ForceUnit.ShortTonForce) => new Force(_value / 8.896443230521e3, ForceUnit.ShortTonForce), (ForceUnit.Newton, ForceUnit.TonneForce) => new Force(_value / 9.80665002864e3, ForceUnit.TonneForce), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1066,7 +1074,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1078,7 +1086,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1092,67 +1100,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Force)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Force)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Force)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Force)) return this; @@ -1166,17 +1174,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Force)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ForceChangeRate.g.cs b/UnitsNet/GeneratedCode/Quantities/ForceChangeRate.g.cs index b6837c60a1..716fc21aff 100644 --- a/UnitsNet/GeneratedCode/Quantities/ForceChangeRate.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ForceChangeRate.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -741,7 +742,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Force /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ForceChangeRate otherQuantity)) return false; @@ -773,7 +774,7 @@ public bool Equals(ForceChangeRate other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ForceChangeRate otherQuantity)) throw new ArgumentException("Expected type ForceChangeRate.", nameof(obj)); @@ -943,7 +944,7 @@ public ForceChangeRate ToUnit(ForceChangeRateUnit unit, UnitConverter unitConver /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ForceChangeRateUnit unit, out ForceChangeRate? converted) + private bool TryToUnit(ForceChangeRateUnit unit, [NotNullWhen(true)] out ForceChangeRate? converted) { if (Unit == unit) { @@ -951,7 +952,7 @@ private bool TryToUnit(ForceChangeRateUnit unit, out ForceChangeRate? converted) return true; } - converted = (Unit, unit) switch + ForceChangeRate? convertedOrNull = (Unit, unit) switch { // ForceChangeRateUnit -> BaseUnit (ForceChangeRateUnit.CentinewtonPerSecond, ForceChangeRateUnit.NewtonPerSecond) => new ForceChangeRate((_value) * 1e-2d, ForceChangeRateUnit.NewtonPerSecond), @@ -985,10 +986,17 @@ private bool TryToUnit(ForceChangeRateUnit unit, out ForceChangeRate? converted) (ForceChangeRateUnit.NewtonPerSecond, ForceChangeRateUnit.PoundForcePerMinute) => new ForceChangeRate(_value / 4.4482216152605095551842641431421 * 60, ForceChangeRateUnit.PoundForcePerMinute), (ForceChangeRateUnit.NewtonPerSecond, ForceChangeRateUnit.PoundForcePerSecond) => new ForceChangeRate(_value / 4.4482216152605095551842641431421, ForceChangeRateUnit.PoundForcePerSecond), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1053,7 +1061,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1065,7 +1073,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1079,67 +1087,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ForceChangeRate)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ForceChangeRate)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ForceChangeRate)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ForceChangeRate)) return this; @@ -1153,17 +1161,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ForceChangeRate)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ForcePerLength.g.cs b/UnitsNet/GeneratedCode/Quantities/ForcePerLength.g.cs index 2d82206ae2..4f192b5051 100644 --- a/UnitsNet/GeneratedCode/Quantities/ForcePerLength.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ForcePerLength.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -1184,7 +1185,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Force /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ForcePerLength otherQuantity)) return false; @@ -1216,7 +1217,7 @@ public bool Equals(ForcePerLength other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ForcePerLength otherQuantity)) throw new ArgumentException("Expected type ForcePerLength.", nameof(obj)); @@ -1386,7 +1387,7 @@ public ForcePerLength ToUnit(ForcePerLengthUnit unit, UnitConverter unitConverte /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ForcePerLengthUnit unit, out ForcePerLength? converted) + private bool TryToUnit(ForcePerLengthUnit unit, [NotNullWhen(true)] out ForcePerLength? converted) { if (Unit == unit) { @@ -1394,7 +1395,7 @@ private bool TryToUnit(ForcePerLengthUnit unit, out ForcePerLength? converted) return true; } - converted = (Unit, unit) switch + ForcePerLength? convertedOrNull = (Unit, unit) switch { // ForcePerLengthUnit -> BaseUnit (ForcePerLengthUnit.CentinewtonPerCentimeter, ForcePerLengthUnit.NewtonPerMeter) => new ForcePerLength((_value * 1e2) * 1e-2d, ForcePerLengthUnit.NewtonPerMeter), @@ -1474,10 +1475,17 @@ private bool TryToUnit(ForcePerLengthUnit unit, out ForcePerLength? converted) (ForcePerLengthUnit.NewtonPerMeter, ForcePerLengthUnit.TonneForcePerMeter) => new ForcePerLength(_value / 9.80665002864e3, ForcePerLengthUnit.TonneForcePerMeter), (ForcePerLengthUnit.NewtonPerMeter, ForcePerLengthUnit.TonneForcePerMillimeter) => new ForcePerLength(_value / 9.80665002864e6, ForcePerLengthUnit.TonneForcePerMillimeter), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1542,7 +1550,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1554,7 +1562,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1568,67 +1576,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ForcePerLength)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ForcePerLength)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ForcePerLength)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ForcePerLength)) return this; @@ -1642,17 +1650,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ForcePerLength)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Frequency.g.cs b/UnitsNet/GeneratedCode/Quantities/Frequency.g.cs index 420e826ad3..a61381fd26 100644 --- a/UnitsNet/GeneratedCode/Quantities/Frequency.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Frequency.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -672,7 +673,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Frequ /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Frequency otherQuantity)) return false; @@ -704,7 +705,7 @@ public bool Equals(Frequency other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Frequency otherQuantity)) throw new ArgumentException("Expected type Frequency.", nameof(obj)); @@ -874,7 +875,7 @@ public Frequency ToUnit(FrequencyUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(FrequencyUnit unit, out Frequency? converted) + private bool TryToUnit(FrequencyUnit unit, [NotNullWhen(true)] out Frequency? converted) { if (Unit == unit) { @@ -882,7 +883,7 @@ private bool TryToUnit(FrequencyUnit unit, out Frequency? converted) return true; } - converted = (Unit, unit) switch + Frequency? convertedOrNull = (Unit, unit) switch { // FrequencyUnit -> BaseUnit (FrequencyUnit.BeatPerMinute, FrequencyUnit.Hertz) => new Frequency(_value / 60, FrequencyUnit.Hertz), @@ -908,10 +909,17 @@ private bool TryToUnit(FrequencyUnit unit, out Frequency? converted) (FrequencyUnit.Hertz, FrequencyUnit.RadianPerSecond) => new Frequency(_value * 6.2831853072, FrequencyUnit.RadianPerSecond), (FrequencyUnit.Hertz, FrequencyUnit.Terahertz) => new Frequency((_value) / 1e12d, FrequencyUnit.Terahertz), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -976,7 +984,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -988,7 +996,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1002,67 +1010,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Frequency)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Frequency)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Frequency)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Frequency)) return this; @@ -1076,17 +1084,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Frequency)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/FuelEfficiency.g.cs b/UnitsNet/GeneratedCode/Quantities/FuelEfficiency.g.cs index 5b43b6a8d1..8429c8302e 100644 --- a/UnitsNet/GeneratedCode/Quantities/FuelEfficiency.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/FuelEfficiency.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -535,7 +536,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out FuelE /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is FuelEfficiency otherQuantity)) return false; @@ -567,7 +568,7 @@ public bool Equals(FuelEfficiency other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is FuelEfficiency otherQuantity)) throw new ArgumentException("Expected type FuelEfficiency.", nameof(obj)); @@ -737,7 +738,7 @@ public FuelEfficiency ToUnit(FuelEfficiencyUnit unit, UnitConverter unitConverte /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(FuelEfficiencyUnit unit, out FuelEfficiency? converted) + private bool TryToUnit(FuelEfficiencyUnit unit, [NotNullWhen(true)] out FuelEfficiency? converted) { if (Unit == unit) { @@ -745,7 +746,7 @@ private bool TryToUnit(FuelEfficiencyUnit unit, out FuelEfficiency? converted) return true; } - converted = (Unit, unit) switch + FuelEfficiency? convertedOrNull = (Unit, unit) switch { // FuelEfficiencyUnit -> BaseUnit (FuelEfficiencyUnit.KilometerPerLiter, FuelEfficiencyUnit.LiterPer100Kilometers) => new FuelEfficiency(100 / _value, FuelEfficiencyUnit.LiterPer100Kilometers), @@ -757,10 +758,17 @@ private bool TryToUnit(FuelEfficiencyUnit unit, out FuelEfficiency? converted) (FuelEfficiencyUnit.LiterPer100Kilometers, FuelEfficiencyUnit.MilePerUkGallon) => new FuelEfficiency((100 * 4.54609188) / (1.609344 * _value), FuelEfficiencyUnit.MilePerUkGallon), (FuelEfficiencyUnit.LiterPer100Kilometers, FuelEfficiencyUnit.MilePerUsGallon) => new FuelEfficiency((100 * 3.785411784) / (1.609344 * _value), FuelEfficiencyUnit.MilePerUsGallon), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -825,7 +833,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -837,7 +845,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -851,67 +859,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(FuelEfficiency)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(FuelEfficiency)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(FuelEfficiency)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(FuelEfficiency)) return this; @@ -925,17 +933,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(FuelEfficiency)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/HeatFlux.g.cs b/UnitsNet/GeneratedCode/Quantities/HeatFlux.g.cs index 23d40b13cc..50e7631984 100644 --- a/UnitsNet/GeneratedCode/Quantities/HeatFlux.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/HeatFlux.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -798,7 +799,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out HeatF /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is HeatFlux otherQuantity)) return false; @@ -830,7 +831,7 @@ public bool Equals(HeatFlux other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is HeatFlux otherQuantity)) throw new ArgumentException("Expected type HeatFlux.", nameof(obj)); @@ -1000,7 +1001,7 @@ public HeatFlux ToUnit(HeatFluxUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(HeatFluxUnit unit, out HeatFlux? converted) + private bool TryToUnit(HeatFluxUnit unit, [NotNullWhen(true)] out HeatFlux? converted) { if (Unit == unit) { @@ -1008,7 +1009,7 @@ private bool TryToUnit(HeatFluxUnit unit, out HeatFlux? converted) return true; } - converted = (Unit, unit) switch + HeatFlux? convertedOrNull = (Unit, unit) switch { // HeatFluxUnit -> BaseUnit (HeatFluxUnit.BtuPerHourSquareFoot, HeatFluxUnit.WattPerSquareMeter) => new HeatFlux(_value * 3.15459075, HeatFluxUnit.WattPerSquareMeter), @@ -1048,10 +1049,17 @@ private bool TryToUnit(HeatFluxUnit unit, out HeatFlux? converted) (HeatFluxUnit.WattPerSquareMeter, HeatFluxUnit.WattPerSquareFoot) => new HeatFlux(_value / 1.07639e1, HeatFluxUnit.WattPerSquareFoot), (HeatFluxUnit.WattPerSquareMeter, HeatFluxUnit.WattPerSquareInch) => new HeatFlux(_value / 1.5500031e3, HeatFluxUnit.WattPerSquareInch), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1116,7 +1124,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1128,7 +1136,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1142,67 +1150,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(HeatFlux)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(HeatFlux)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(HeatFlux)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(HeatFlux)) return this; @@ -1216,17 +1224,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(HeatFlux)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/HeatTransferCoefficient.g.cs b/UnitsNet/GeneratedCode/Quantities/HeatTransferCoefficient.g.cs index 4bee4ba156..5686653de0 100644 --- a/UnitsNet/GeneratedCode/Quantities/HeatTransferCoefficient.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/HeatTransferCoefficient.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -513,7 +514,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out HeatT /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is HeatTransferCoefficient otherQuantity)) return false; @@ -545,7 +546,7 @@ public bool Equals(HeatTransferCoefficient other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is HeatTransferCoefficient otherQuantity)) throw new ArgumentException("Expected type HeatTransferCoefficient.", nameof(obj)); @@ -715,7 +716,7 @@ public HeatTransferCoefficient ToUnit(HeatTransferCoefficientUnit unit, UnitConv /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(HeatTransferCoefficientUnit unit, out HeatTransferCoefficient? converted) + private bool TryToUnit(HeatTransferCoefficientUnit unit, [NotNullWhen(true)] out HeatTransferCoefficient? converted) { if (Unit == unit) { @@ -723,7 +724,7 @@ private bool TryToUnit(HeatTransferCoefficientUnit unit, out HeatTransferCoeffic return true; } - converted = (Unit, unit) switch + HeatTransferCoefficient? convertedOrNull = (Unit, unit) switch { // HeatTransferCoefficientUnit -> BaseUnit (HeatTransferCoefficientUnit.BtuPerSquareFootDegreeFahrenheit, HeatTransferCoefficientUnit.WattPerSquareMeterKelvin) => new HeatTransferCoefficient(_value * 5.6782633411134878, HeatTransferCoefficientUnit.WattPerSquareMeterKelvin), @@ -733,10 +734,17 @@ private bool TryToUnit(HeatTransferCoefficientUnit unit, out HeatTransferCoeffic (HeatTransferCoefficientUnit.WattPerSquareMeterKelvin, HeatTransferCoefficientUnit.BtuPerSquareFootDegreeFahrenheit) => new HeatTransferCoefficient(_value / 5.6782633411134878, HeatTransferCoefficientUnit.BtuPerSquareFootDegreeFahrenheit), (HeatTransferCoefficientUnit.WattPerSquareMeterKelvin, HeatTransferCoefficientUnit.WattPerSquareMeterCelsius) => new HeatTransferCoefficient(_value, HeatTransferCoefficientUnit.WattPerSquareMeterCelsius), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -801,7 +809,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -813,7 +821,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -827,67 +835,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(HeatTransferCoefficient)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(HeatTransferCoefficient)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(HeatTransferCoefficient)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(HeatTransferCoefficient)) return this; @@ -901,17 +909,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(HeatTransferCoefficient)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Illuminance.g.cs b/UnitsNet/GeneratedCode/Quantities/Illuminance.g.cs index ecfbc7016d..9e820a1608 100644 --- a/UnitsNet/GeneratedCode/Quantities/Illuminance.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Illuminance.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -535,7 +536,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Illum /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Illuminance otherQuantity)) return false; @@ -567,7 +568,7 @@ public bool Equals(Illuminance other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Illuminance otherQuantity)) throw new ArgumentException("Expected type Illuminance.", nameof(obj)); @@ -737,7 +738,7 @@ public Illuminance ToUnit(IlluminanceUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(IlluminanceUnit unit, out Illuminance? converted) + private bool TryToUnit(IlluminanceUnit unit, [NotNullWhen(true)] out Illuminance? converted) { if (Unit == unit) { @@ -745,7 +746,7 @@ private bool TryToUnit(IlluminanceUnit unit, out Illuminance? converted) return true; } - converted = (Unit, unit) switch + Illuminance? convertedOrNull = (Unit, unit) switch { // IlluminanceUnit -> BaseUnit (IlluminanceUnit.Kilolux, IlluminanceUnit.Lux) => new Illuminance((_value) * 1e3d, IlluminanceUnit.Lux), @@ -757,10 +758,17 @@ private bool TryToUnit(IlluminanceUnit unit, out Illuminance? converted) (IlluminanceUnit.Lux, IlluminanceUnit.Megalux) => new Illuminance((_value) / 1e6d, IlluminanceUnit.Megalux), (IlluminanceUnit.Lux, IlluminanceUnit.Millilux) => new Illuminance((_value) / 1e-3d, IlluminanceUnit.Millilux), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -825,7 +833,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -837,7 +845,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -851,67 +859,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Illuminance)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Illuminance)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Illuminance)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Illuminance)) return this; @@ -925,17 +933,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Illuminance)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Information.g.cs b/UnitsNet/GeneratedCode/Quantities/Information.g.cs index 5c2b9f0bdb..6150a147e0 100644 --- a/UnitsNet/GeneratedCode/Quantities/Information.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Information.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -953,7 +954,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Infor /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, decimal, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Information otherQuantity)) return false; @@ -985,7 +986,7 @@ public bool Equals(Information other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Information otherQuantity)) throw new ArgumentException("Expected type Information.", nameof(obj)); @@ -1166,7 +1167,7 @@ public Information ToUnit(InformationUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(InformationUnit unit, out Information? converted) + private bool TryToUnit(InformationUnit unit, [NotNullWhen(true)] out Information? converted) { if (Unit == unit) { @@ -1174,7 +1175,7 @@ private bool TryToUnit(InformationUnit unit, out Information? converted) return true; } - converted = (Unit, unit) switch + Information? convertedOrNull = (Unit, unit) switch { // InformationUnit -> BaseUnit (InformationUnit.Byte, InformationUnit.Bit) => new Information(_value * 8m, InformationUnit.Bit), @@ -1230,10 +1231,17 @@ private bool TryToUnit(InformationUnit unit, out Information? converted) (InformationUnit.Bit, InformationUnit.Terabit) => new Information((_value) / 1e12m, InformationUnit.Terabit), (InformationUnit.Bit, InformationUnit.Terabyte) => new Information((_value / 8m) / 1e12m, InformationUnit.Terabyte), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1298,7 +1306,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1310,7 +1318,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1324,67 +1332,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Information)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Information)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Information)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Information)) return this; @@ -1398,17 +1406,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Information)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Irradiance.g.cs b/UnitsNet/GeneratedCode/Quantities/Irradiance.g.cs index 6733f605f6..5dd24b9b15 100644 --- a/UnitsNet/GeneratedCode/Quantities/Irradiance.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Irradiance.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -722,7 +723,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Irrad /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Irradiance otherQuantity)) return false; @@ -754,7 +755,7 @@ public bool Equals(Irradiance other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Irradiance otherQuantity)) throw new ArgumentException("Expected type Irradiance.", nameof(obj)); @@ -924,7 +925,7 @@ public Irradiance ToUnit(IrradianceUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(IrradianceUnit unit, out Irradiance? converted) + private bool TryToUnit(IrradianceUnit unit, [NotNullWhen(true)] out Irradiance? converted) { if (Unit == unit) { @@ -932,7 +933,7 @@ private bool TryToUnit(IrradianceUnit unit, out Irradiance? converted) return true; } - converted = (Unit, unit) switch + Irradiance? convertedOrNull = (Unit, unit) switch { // IrradianceUnit -> BaseUnit (IrradianceUnit.KilowattPerSquareCentimeter, IrradianceUnit.WattPerSquareMeter) => new Irradiance((_value * 10000) * 1e3d, IrradianceUnit.WattPerSquareMeter), @@ -964,10 +965,17 @@ private bool TryToUnit(IrradianceUnit unit, out Irradiance? converted) (IrradianceUnit.WattPerSquareMeter, IrradianceUnit.PicowattPerSquareMeter) => new Irradiance((_value) / 1e-12d, IrradianceUnit.PicowattPerSquareMeter), (IrradianceUnit.WattPerSquareMeter, IrradianceUnit.WattPerSquareCentimeter) => new Irradiance(_value * 0.0001, IrradianceUnit.WattPerSquareCentimeter), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1032,7 +1040,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1044,7 +1052,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1058,67 +1066,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Irradiance)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Irradiance)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Irradiance)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Irradiance)) return this; @@ -1132,17 +1140,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Irradiance)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Irradiation.g.cs b/UnitsNet/GeneratedCode/Quantities/Irradiation.g.cs index f9d35c1a87..406e255b8c 100644 --- a/UnitsNet/GeneratedCode/Quantities/Irradiation.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Irradiation.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -592,7 +593,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Irrad /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Irradiation otherQuantity)) return false; @@ -624,7 +625,7 @@ public bool Equals(Irradiation other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Irradiation otherQuantity)) throw new ArgumentException("Expected type Irradiation.", nameof(obj)); @@ -794,7 +795,7 @@ public Irradiation ToUnit(IrradiationUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(IrradiationUnit unit, out Irradiation? converted) + private bool TryToUnit(IrradiationUnit unit, [NotNullWhen(true)] out Irradiation? converted) { if (Unit == unit) { @@ -802,7 +803,7 @@ private bool TryToUnit(IrradiationUnit unit, out Irradiation? converted) return true; } - converted = (Unit, unit) switch + Irradiation? convertedOrNull = (Unit, unit) switch { // IrradiationUnit -> BaseUnit (IrradiationUnit.JoulePerSquareCentimeter, IrradiationUnit.JoulePerSquareMeter) => new Irradiation(_value * 1e4, IrradiationUnit.JoulePerSquareMeter), @@ -820,10 +821,17 @@ private bool TryToUnit(IrradiationUnit unit, out Irradiation? converted) (IrradiationUnit.JoulePerSquareMeter, IrradiationUnit.MillijoulePerSquareCentimeter) => new Irradiation((_value / 1e4) / 1e-3d, IrradiationUnit.MillijoulePerSquareCentimeter), (IrradiationUnit.JoulePerSquareMeter, IrradiationUnit.WattHourPerSquareMeter) => new Irradiation(_value / 3600d, IrradiationUnit.WattHourPerSquareMeter), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -888,7 +896,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -900,7 +908,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -914,67 +922,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Irradiation)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Irradiation)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Irradiation)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Irradiation)) return this; @@ -988,17 +996,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Irradiation)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Jerk.g.cs b/UnitsNet/GeneratedCode/Quantities/Jerk.g.cs index 6ebedf07a9..38bcce066a 100644 --- a/UnitsNet/GeneratedCode/Quantities/Jerk.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Jerk.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -676,7 +677,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out JerkU /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Jerk otherQuantity)) return false; @@ -708,7 +709,7 @@ public bool Equals(Jerk other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Jerk otherQuantity)) throw new ArgumentException("Expected type Jerk.", nameof(obj)); @@ -878,7 +879,7 @@ public Jerk ToUnit(JerkUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(JerkUnit unit, out Jerk? converted) + private bool TryToUnit(JerkUnit unit, [NotNullWhen(true)] out Jerk? converted) { if (Unit == unit) { @@ -886,7 +887,7 @@ private bool TryToUnit(JerkUnit unit, out Jerk? converted) return true; } - converted = (Unit, unit) switch + Jerk? convertedOrNull = (Unit, unit) switch { // JerkUnit -> BaseUnit (JerkUnit.CentimeterPerSecondCubed, JerkUnit.MeterPerSecondCubed) => new Jerk((_value) * 1e-2d, JerkUnit.MeterPerSecondCubed), @@ -912,10 +913,17 @@ private bool TryToUnit(JerkUnit unit, out Jerk? converted) (JerkUnit.MeterPerSecondCubed, JerkUnit.NanometerPerSecondCubed) => new Jerk((_value) / 1e-9d, JerkUnit.NanometerPerSecondCubed), (JerkUnit.MeterPerSecondCubed, JerkUnit.StandardGravitiesPerSecond) => new Jerk(_value / 9.80665, JerkUnit.StandardGravitiesPerSecond), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -980,7 +988,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -992,7 +1000,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1006,67 +1014,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Jerk)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Jerk)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Jerk)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Jerk)) return this; @@ -1080,17 +1088,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Jerk)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/KinematicViscosity.g.cs b/UnitsNet/GeneratedCode/Quantities/KinematicViscosity.g.cs index 619181a743..08bdc87ebb 100644 --- a/UnitsNet/GeneratedCode/Quantities/KinematicViscosity.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/KinematicViscosity.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -638,7 +639,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Kinem /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is KinematicViscosity otherQuantity)) return false; @@ -670,7 +671,7 @@ public bool Equals(KinematicViscosity other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is KinematicViscosity otherQuantity)) throw new ArgumentException("Expected type KinematicViscosity.", nameof(obj)); @@ -840,7 +841,7 @@ public KinematicViscosity ToUnit(KinematicViscosityUnit unit, UnitConverter unit /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(KinematicViscosityUnit unit, out KinematicViscosity? converted) + private bool TryToUnit(KinematicViscosityUnit unit, [NotNullWhen(true)] out KinematicViscosity? converted) { if (Unit == unit) { @@ -848,7 +849,7 @@ private bool TryToUnit(KinematicViscosityUnit unit, out KinematicViscosity? conv return true; } - converted = (Unit, unit) switch + KinematicViscosity? convertedOrNull = (Unit, unit) switch { // KinematicViscosityUnit -> BaseUnit (KinematicViscosityUnit.Centistokes, KinematicViscosityUnit.SquareMeterPerSecond) => new KinematicViscosity((_value / 1e4) * 1e-2d, KinematicViscosityUnit.SquareMeterPerSecond), @@ -870,10 +871,17 @@ private bool TryToUnit(KinematicViscosityUnit unit, out KinematicViscosity? conv (KinematicViscosityUnit.SquareMeterPerSecond, KinematicViscosityUnit.SquareFootPerSecond) => new KinematicViscosity(_value * 10.7639, KinematicViscosityUnit.SquareFootPerSecond), (KinematicViscosityUnit.SquareMeterPerSecond, KinematicViscosityUnit.Stokes) => new KinematicViscosity(_value * 1e4, KinematicViscosityUnit.Stokes), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -938,7 +946,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -950,7 +958,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -964,67 +972,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(KinematicViscosity)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(KinematicViscosity)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(KinematicViscosity)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(KinematicViscosity)) return this; @@ -1038,17 +1046,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(KinematicViscosity)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Length.g.cs b/UnitsNet/GeneratedCode/Quantities/Length.g.cs index 5f4572beaa..4d2da67328 100644 --- a/UnitsNet/GeneratedCode/Quantities/Length.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Length.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -1172,7 +1173,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Lengt /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Length otherQuantity)) return false; @@ -1204,7 +1205,7 @@ public bool Equals(Length other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Length otherQuantity)) throw new ArgumentException("Expected type Length.", nameof(obj)); @@ -1374,7 +1375,7 @@ public Length ToUnit(LengthUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(LengthUnit unit, out Length? converted) + private bool TryToUnit(LengthUnit unit, [NotNullWhen(true)] out Length? converted) { if (Unit == unit) { @@ -1382,7 +1383,7 @@ private bool TryToUnit(LengthUnit unit, out Length? converted) return true; } - converted = (Unit, unit) switch + Length? convertedOrNull = (Unit, unit) switch { // LengthUnit -> BaseUnit (LengthUnit.Angstrom, LengthUnit.Meter) => new Length(_value * 1e-10, LengthUnit.Meter), @@ -1458,10 +1459,17 @@ private bool TryToUnit(LengthUnit unit, out Length? converted) (LengthUnit.Meter, LengthUnit.UsSurveyFoot) => new Length(_value * 3937 / 1200, LengthUnit.UsSurveyFoot), (LengthUnit.Meter, LengthUnit.Yard) => new Length(_value / 0.9144, LengthUnit.Yard), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1526,7 +1534,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1538,7 +1546,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1552,67 +1560,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Length)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Length)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Length)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Length)) return this; @@ -1626,17 +1634,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Length)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Level.g.cs b/UnitsNet/GeneratedCode/Quantities/Level.g.cs index 147038eaf9..a739fef44b 100644 --- a/UnitsNet/GeneratedCode/Quantities/Level.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Level.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -502,7 +503,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Level /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Level otherQuantity)) return false; @@ -534,7 +535,7 @@ public bool Equals(Level other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Level otherQuantity)) throw new ArgumentException("Expected type Level.", nameof(obj)); @@ -704,7 +705,7 @@ public Level ToUnit(LevelUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(LevelUnit unit, out Level? converted) + private bool TryToUnit(LevelUnit unit, [NotNullWhen(true)] out Level? converted) { if (Unit == unit) { @@ -712,7 +713,7 @@ private bool TryToUnit(LevelUnit unit, out Level? converted) return true; } - converted = (Unit, unit) switch + Level? convertedOrNull = (Unit, unit) switch { // LevelUnit -> BaseUnit (LevelUnit.Neper, LevelUnit.Decibel) => new Level((1 / 0.115129254) * _value, LevelUnit.Decibel), @@ -720,10 +721,17 @@ private bool TryToUnit(LevelUnit unit, out Level? converted) // BaseUnit -> LevelUnit (LevelUnit.Decibel, LevelUnit.Neper) => new Level(0.115129254 * _value, LevelUnit.Neper), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -788,7 +796,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -800,7 +808,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -814,67 +822,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Level)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Level)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Level)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Level)) return this; @@ -888,17 +896,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Level)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/LinearDensity.g.cs b/UnitsNet/GeneratedCode/Quantities/LinearDensity.g.cs index c3cb92b908..f1e2fc2c0a 100644 --- a/UnitsNet/GeneratedCode/Quantities/LinearDensity.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/LinearDensity.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -725,7 +726,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Linea /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is LinearDensity otherQuantity)) return false; @@ -757,7 +758,7 @@ public bool Equals(LinearDensity other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is LinearDensity otherQuantity)) throw new ArgumentException("Expected type LinearDensity.", nameof(obj)); @@ -927,7 +928,7 @@ public LinearDensity ToUnit(LinearDensityUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(LinearDensityUnit unit, out LinearDensity? converted) + private bool TryToUnit(LinearDensityUnit unit, [NotNullWhen(true)] out LinearDensity? converted) { if (Unit == unit) { @@ -935,7 +936,7 @@ private bool TryToUnit(LinearDensityUnit unit, out LinearDensity? converted) return true; } - converted = (Unit, unit) switch + LinearDensity? convertedOrNull = (Unit, unit) switch { // LinearDensityUnit -> BaseUnit (LinearDensityUnit.GramPerCentimeter, LinearDensityUnit.KilogramPerMeter) => new LinearDensity(_value * 1e-1, LinearDensityUnit.KilogramPerMeter), @@ -967,10 +968,17 @@ private bool TryToUnit(LinearDensityUnit unit, out LinearDensity? converted) (LinearDensityUnit.KilogramPerMeter, LinearDensityUnit.PoundPerFoot) => new LinearDensity(_value / 1.48816394, LinearDensityUnit.PoundPerFoot), (LinearDensityUnit.KilogramPerMeter, LinearDensityUnit.PoundPerInch) => new LinearDensity(_value * 5.5997415e-2, LinearDensityUnit.PoundPerInch), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1035,7 +1043,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1047,7 +1055,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1061,67 +1069,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(LinearDensity)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(LinearDensity)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(LinearDensity)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(LinearDensity)) return this; @@ -1135,17 +1143,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(LinearDensity)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/LinearPowerDensity.g.cs b/UnitsNet/GeneratedCode/Quantities/LinearPowerDensity.g.cs index 3281c6b995..0302512aed 100644 --- a/UnitsNet/GeneratedCode/Quantities/LinearPowerDensity.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/LinearPowerDensity.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -934,7 +935,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Linea /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is LinearPowerDensity otherQuantity)) return false; @@ -966,7 +967,7 @@ public bool Equals(LinearPowerDensity other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is LinearPowerDensity otherQuantity)) throw new ArgumentException("Expected type LinearPowerDensity.", nameof(obj)); @@ -1136,7 +1137,7 @@ public LinearPowerDensity ToUnit(LinearPowerDensityUnit unit, UnitConverter unit /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(LinearPowerDensityUnit unit, out LinearPowerDensity? converted) + private bool TryToUnit(LinearPowerDensityUnit unit, [NotNullWhen(true)] out LinearPowerDensity? converted) { if (Unit == unit) { @@ -1144,7 +1145,7 @@ private bool TryToUnit(LinearPowerDensityUnit unit, out LinearPowerDensity? conv return true; } - converted = (Unit, unit) switch + LinearPowerDensity? convertedOrNull = (Unit, unit) switch { // LinearPowerDensityUnit -> BaseUnit (LinearPowerDensityUnit.GigawattPerCentimeter, LinearPowerDensityUnit.WattPerMeter) => new LinearPowerDensity((_value * 1e2) * 1e9d, LinearPowerDensityUnit.WattPerMeter), @@ -1198,10 +1199,17 @@ private bool TryToUnit(LinearPowerDensityUnit unit, out LinearPowerDensity? conv (LinearPowerDensityUnit.WattPerMeter, LinearPowerDensityUnit.WattPerInch) => new LinearPowerDensity(_value / 39.37007874, LinearPowerDensityUnit.WattPerInch), (LinearPowerDensityUnit.WattPerMeter, LinearPowerDensityUnit.WattPerMillimeter) => new LinearPowerDensity(_value / 1e3, LinearPowerDensityUnit.WattPerMillimeter), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1266,7 +1274,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1278,7 +1286,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1292,67 +1300,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(LinearPowerDensity)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(LinearPowerDensity)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(LinearPowerDensity)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(LinearPowerDensity)) return this; @@ -1366,17 +1374,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(LinearPowerDensity)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Luminance.g.cs b/UnitsNet/GeneratedCode/Quantities/Luminance.g.cs index 4ff280d962..f55754738e 100644 --- a/UnitsNet/GeneratedCode/Quantities/Luminance.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Luminance.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -649,7 +650,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Lumin /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Luminance otherQuantity)) return false; @@ -681,7 +682,7 @@ public bool Equals(Luminance other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Luminance otherQuantity)) throw new ArgumentException("Expected type Luminance.", nameof(obj)); @@ -851,7 +852,7 @@ public Luminance ToUnit(LuminanceUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(LuminanceUnit unit, out Luminance? converted) + private bool TryToUnit(LuminanceUnit unit, [NotNullWhen(true)] out Luminance? converted) { if (Unit == unit) { @@ -859,7 +860,7 @@ private bool TryToUnit(LuminanceUnit unit, out Luminance? converted) return true; } - converted = (Unit, unit) switch + Luminance? convertedOrNull = (Unit, unit) switch { // LuminanceUnit -> BaseUnit (LuminanceUnit.CandelaPerSquareFoot, LuminanceUnit.CandelaPerSquareMeter) => new Luminance(_value* 1.07639e1, LuminanceUnit.CandelaPerSquareMeter), @@ -883,10 +884,17 @@ private bool TryToUnit(LuminanceUnit unit, out Luminance? converted) (LuminanceUnit.CandelaPerSquareMeter, LuminanceUnit.NanocandelaPerSquareMeter) => new Luminance((_value) / 1e-9d, LuminanceUnit.NanocandelaPerSquareMeter), (LuminanceUnit.CandelaPerSquareMeter, LuminanceUnit.Nit) => new Luminance(_value, LuminanceUnit.Nit), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -951,7 +959,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -963,7 +971,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -977,67 +985,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Luminance)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Luminance)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Luminance)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Luminance)) return this; @@ -1051,17 +1059,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Luminance)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Luminosity.g.cs b/UnitsNet/GeneratedCode/Quantities/Luminosity.g.cs index db7c207aa5..cb75fcb2a4 100644 --- a/UnitsNet/GeneratedCode/Quantities/Luminosity.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Luminosity.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -725,7 +726,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Lumin /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Luminosity otherQuantity)) return false; @@ -757,7 +758,7 @@ public bool Equals(Luminosity other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Luminosity otherQuantity)) throw new ArgumentException("Expected type Luminosity.", nameof(obj)); @@ -927,7 +928,7 @@ public Luminosity ToUnit(LuminosityUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(LuminosityUnit unit, out Luminosity? converted) + private bool TryToUnit(LuminosityUnit unit, [NotNullWhen(true)] out Luminosity? converted) { if (Unit == unit) { @@ -935,7 +936,7 @@ private bool TryToUnit(LuminosityUnit unit, out Luminosity? converted) return true; } - converted = (Unit, unit) switch + Luminosity? convertedOrNull = (Unit, unit) switch { // LuminosityUnit -> BaseUnit (LuminosityUnit.Decawatt, LuminosityUnit.Watt) => new Luminosity((_value) * 1e1d, LuminosityUnit.Watt), @@ -967,10 +968,17 @@ private bool TryToUnit(LuminosityUnit unit, out Luminosity? converted) (LuminosityUnit.Watt, LuminosityUnit.SolarLuminosity) => new Luminosity(_value / 3.846e26, LuminosityUnit.SolarLuminosity), (LuminosityUnit.Watt, LuminosityUnit.Terawatt) => new Luminosity((_value) / 1e12d, LuminosityUnit.Terawatt), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1035,7 +1043,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1047,7 +1055,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1061,67 +1069,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Luminosity)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Luminosity)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Luminosity)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Luminosity)) return this; @@ -1135,17 +1143,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Luminosity)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/LuminousFlux.g.cs b/UnitsNet/GeneratedCode/Quantities/LuminousFlux.g.cs index d42e0d53f5..e814dbe5c1 100644 --- a/UnitsNet/GeneratedCode/Quantities/LuminousFlux.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/LuminousFlux.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -478,7 +479,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Lumin /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is LuminousFlux otherQuantity)) return false; @@ -510,7 +511,7 @@ public bool Equals(LuminousFlux other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is LuminousFlux otherQuantity)) throw new ArgumentException("Expected type LuminousFlux.", nameof(obj)); @@ -680,7 +681,7 @@ public LuminousFlux ToUnit(LuminousFluxUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(LuminousFluxUnit unit, out LuminousFlux? converted) + private bool TryToUnit(LuminousFluxUnit unit, [NotNullWhen(true)] out LuminousFlux? converted) { if (Unit == unit) { @@ -688,16 +689,23 @@ private bool TryToUnit(LuminousFluxUnit unit, out LuminousFlux? converted) return true; } - converted = (Unit, unit) switch + LuminousFlux? convertedOrNull = (Unit, unit) switch { // LuminousFluxUnit -> BaseUnit // BaseUnit -> LuminousFluxUnit - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -762,7 +770,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -774,7 +782,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -788,67 +796,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(LuminousFlux)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(LuminousFlux)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(LuminousFlux)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(LuminousFlux)) return this; @@ -862,17 +870,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(LuminousFlux)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/LuminousIntensity.g.cs b/UnitsNet/GeneratedCode/Quantities/LuminousIntensity.g.cs index 54c0f2c8b5..f37e8d26e6 100644 --- a/UnitsNet/GeneratedCode/Quantities/LuminousIntensity.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/LuminousIntensity.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -478,7 +479,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Lumin /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is LuminousIntensity otherQuantity)) return false; @@ -510,7 +511,7 @@ public bool Equals(LuminousIntensity other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is LuminousIntensity otherQuantity)) throw new ArgumentException("Expected type LuminousIntensity.", nameof(obj)); @@ -680,7 +681,7 @@ public LuminousIntensity ToUnit(LuminousIntensityUnit unit, UnitConverter unitCo /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(LuminousIntensityUnit unit, out LuminousIntensity? converted) + private bool TryToUnit(LuminousIntensityUnit unit, [NotNullWhen(true)] out LuminousIntensity? converted) { if (Unit == unit) { @@ -688,16 +689,23 @@ private bool TryToUnit(LuminousIntensityUnit unit, out LuminousIntensity? conver return true; } - converted = (Unit, unit) switch + LuminousIntensity? convertedOrNull = (Unit, unit) switch { // LuminousIntensityUnit -> BaseUnit // BaseUnit -> LuminousIntensityUnit - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -762,7 +770,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -774,7 +782,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -788,67 +796,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(LuminousIntensity)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(LuminousIntensity)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(LuminousIntensity)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(LuminousIntensity)) return this; @@ -862,17 +870,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(LuminousIntensity)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/MagneticField.g.cs b/UnitsNet/GeneratedCode/Quantities/MagneticField.g.cs index 62bbdfe827..4adcb63faf 100644 --- a/UnitsNet/GeneratedCode/Quantities/MagneticField.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/MagneticField.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -573,7 +574,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Magne /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is MagneticField otherQuantity)) return false; @@ -605,7 +606,7 @@ public bool Equals(MagneticField other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is MagneticField otherQuantity)) throw new ArgumentException("Expected type MagneticField.", nameof(obj)); @@ -775,7 +776,7 @@ public MagneticField ToUnit(MagneticFieldUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(MagneticFieldUnit unit, out MagneticField? converted) + private bool TryToUnit(MagneticFieldUnit unit, [NotNullWhen(true)] out MagneticField? converted) { if (Unit == unit) { @@ -783,7 +784,7 @@ private bool TryToUnit(MagneticFieldUnit unit, out MagneticField? converted) return true; } - converted = (Unit, unit) switch + MagneticField? convertedOrNull = (Unit, unit) switch { // MagneticFieldUnit -> BaseUnit (MagneticFieldUnit.Gauss, MagneticFieldUnit.Tesla) => new MagneticField(_value / 1e4, MagneticFieldUnit.Tesla), @@ -799,10 +800,17 @@ private bool TryToUnit(MagneticFieldUnit unit, out MagneticField? converted) (MagneticFieldUnit.Tesla, MagneticFieldUnit.Millitesla) => new MagneticField((_value) / 1e-3d, MagneticFieldUnit.Millitesla), (MagneticFieldUnit.Tesla, MagneticFieldUnit.Nanotesla) => new MagneticField((_value) / 1e-9d, MagneticFieldUnit.Nanotesla), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -867,7 +875,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -879,7 +887,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -893,67 +901,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MagneticField)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MagneticField)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MagneticField)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(MagneticField)) return this; @@ -967,17 +975,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(MagneticField)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/MagneticFlux.g.cs b/UnitsNet/GeneratedCode/Quantities/MagneticFlux.g.cs index 25e9887863..7f4a257ba4 100644 --- a/UnitsNet/GeneratedCode/Quantities/MagneticFlux.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/MagneticFlux.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -478,7 +479,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Magne /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is MagneticFlux otherQuantity)) return false; @@ -510,7 +511,7 @@ public bool Equals(MagneticFlux other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is MagneticFlux otherQuantity)) throw new ArgumentException("Expected type MagneticFlux.", nameof(obj)); @@ -680,7 +681,7 @@ public MagneticFlux ToUnit(MagneticFluxUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(MagneticFluxUnit unit, out MagneticFlux? converted) + private bool TryToUnit(MagneticFluxUnit unit, [NotNullWhen(true)] out MagneticFlux? converted) { if (Unit == unit) { @@ -688,16 +689,23 @@ private bool TryToUnit(MagneticFluxUnit unit, out MagneticFlux? converted) return true; } - converted = (Unit, unit) switch + MagneticFlux? convertedOrNull = (Unit, unit) switch { // MagneticFluxUnit -> BaseUnit // BaseUnit -> MagneticFluxUnit - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -762,7 +770,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -774,7 +782,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -788,67 +796,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MagneticFlux)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MagneticFlux)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MagneticFlux)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(MagneticFlux)) return this; @@ -862,17 +870,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(MagneticFlux)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Magnetization.g.cs b/UnitsNet/GeneratedCode/Quantities/Magnetization.g.cs index 96f41fafe3..0f895ac39a 100644 --- a/UnitsNet/GeneratedCode/Quantities/Magnetization.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Magnetization.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -478,7 +479,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Magne /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Magnetization otherQuantity)) return false; @@ -510,7 +511,7 @@ public bool Equals(Magnetization other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Magnetization otherQuantity)) throw new ArgumentException("Expected type Magnetization.", nameof(obj)); @@ -680,7 +681,7 @@ public Magnetization ToUnit(MagnetizationUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(MagnetizationUnit unit, out Magnetization? converted) + private bool TryToUnit(MagnetizationUnit unit, [NotNullWhen(true)] out Magnetization? converted) { if (Unit == unit) { @@ -688,16 +689,23 @@ private bool TryToUnit(MagnetizationUnit unit, out Magnetization? converted) return true; } - converted = (Unit, unit) switch + Magnetization? convertedOrNull = (Unit, unit) switch { // MagnetizationUnit -> BaseUnit // BaseUnit -> MagnetizationUnit - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -762,7 +770,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -774,7 +782,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -788,67 +796,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Magnetization)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Magnetization)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Magnetization)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Magnetization)) return this; @@ -862,17 +870,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Magnetization)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Mass.g.cs b/UnitsNet/GeneratedCode/Quantities/Mass.g.cs index cb9616986d..ed0cc7d56c 100644 --- a/UnitsNet/GeneratedCode/Quantities/Mass.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Mass.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -966,7 +967,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out MassU /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Mass otherQuantity)) return false; @@ -998,7 +999,7 @@ public bool Equals(Mass other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Mass otherQuantity)) throw new ArgumentException("Expected type Mass.", nameof(obj)); @@ -1168,7 +1169,7 @@ public Mass ToUnit(MassUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(MassUnit unit, out Mass? converted) + private bool TryToUnit(MassUnit unit, [NotNullWhen(true)] out Mass? converted) { if (Unit == unit) { @@ -1176,7 +1177,7 @@ private bool TryToUnit(MassUnit unit, out Mass? converted) return true; } - converted = (Unit, unit) switch + Mass? convertedOrNull = (Unit, unit) switch { // MassUnit -> BaseUnit (MassUnit.Centigram, MassUnit.Kilogram) => new Mass((_value / 1e3) * 1e-2d, MassUnit.Kilogram), @@ -1230,10 +1231,17 @@ private bool TryToUnit(MassUnit unit, out Mass? converted) (MassUnit.Kilogram, MassUnit.Stone) => new Mass(_value * 0.1574731728702698, MassUnit.Stone), (MassUnit.Kilogram, MassUnit.Tonne) => new Mass(_value / 1e3, MassUnit.Tonne), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1298,7 +1306,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1310,7 +1318,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1324,67 +1332,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Mass)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Mass)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Mass)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Mass)) return this; @@ -1398,17 +1406,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Mass)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/MassConcentration.g.cs b/UnitsNet/GeneratedCode/Quantities/MassConcentration.g.cs index d9b852899b..76895865b4 100644 --- a/UnitsNet/GeneratedCode/Quantities/MassConcentration.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/MassConcentration.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -1394,7 +1395,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out MassC /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is MassConcentration otherQuantity)) return false; @@ -1426,7 +1427,7 @@ public bool Equals(MassConcentration other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is MassConcentration otherQuantity)) throw new ArgumentException("Expected type MassConcentration.", nameof(obj)); @@ -1596,7 +1597,7 @@ public MassConcentration ToUnit(MassConcentrationUnit unit, UnitConverter unitCo /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(MassConcentrationUnit unit, out MassConcentration? converted) + private bool TryToUnit(MassConcentrationUnit unit, [NotNullWhen(true)] out MassConcentration? converted) { if (Unit == unit) { @@ -1604,7 +1605,7 @@ private bool TryToUnit(MassConcentrationUnit unit, out MassConcentration? conver return true; } - converted = (Unit, unit) switch + MassConcentration? convertedOrNull = (Unit, unit) switch { // MassConcentrationUnit -> BaseUnit (MassConcentrationUnit.CentigramPerDeciliter, MassConcentrationUnit.KilogramPerCubicMeter) => new MassConcentration((_value / 1e-1) * 1e-2d, MassConcentrationUnit.KilogramPerCubicMeter), @@ -1706,10 +1707,17 @@ private bool TryToUnit(MassConcentrationUnit unit, out MassConcentration? conver (MassConcentrationUnit.KilogramPerCubicMeter, MassConcentrationUnit.TonnePerCubicMeter) => new MassConcentration(_value * 0.001, MassConcentrationUnit.TonnePerCubicMeter), (MassConcentrationUnit.KilogramPerCubicMeter, MassConcentrationUnit.TonnePerCubicMillimeter) => new MassConcentration(_value * 1e-12, MassConcentrationUnit.TonnePerCubicMillimeter), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1774,7 +1782,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1786,7 +1794,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1800,67 +1808,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MassConcentration)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MassConcentration)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MassConcentration)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(MassConcentration)) return this; @@ -1874,17 +1882,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(MassConcentration)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/MassFlow.g.cs b/UnitsNet/GeneratedCode/Quantities/MassFlow.g.cs index 069f8e0938..64be7c8138 100644 --- a/UnitsNet/GeneratedCode/Quantities/MassFlow.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/MassFlow.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -1085,7 +1086,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out MassF /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is MassFlow otherQuantity)) return false; @@ -1117,7 +1118,7 @@ public bool Equals(MassFlow other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is MassFlow otherQuantity)) throw new ArgumentException("Expected type MassFlow.", nameof(obj)); @@ -1287,7 +1288,7 @@ public MassFlow ToUnit(MassFlowUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(MassFlowUnit unit, out MassFlow? converted) + private bool TryToUnit(MassFlowUnit unit, [NotNullWhen(true)] out MassFlow? converted) { if (Unit == unit) { @@ -1295,7 +1296,7 @@ private bool TryToUnit(MassFlowUnit unit, out MassFlow? converted) return true; } - converted = (Unit, unit) switch + MassFlow? convertedOrNull = (Unit, unit) switch { // MassFlowUnit -> BaseUnit (MassFlowUnit.CentigramPerDay, MassFlowUnit.GramPerSecond) => new MassFlow((_value / 86400) * 1e-2d, MassFlowUnit.GramPerSecond), @@ -1365,10 +1366,17 @@ private bool TryToUnit(MassFlowUnit unit, out MassFlow? converted) (MassFlowUnit.GramPerSecond, MassFlowUnit.TonnePerDay) => new MassFlow(_value * 0.0864000, MassFlowUnit.TonnePerDay), (MassFlowUnit.GramPerSecond, MassFlowUnit.TonnePerHour) => new MassFlow(_value * 3.6 / 1000, MassFlowUnit.TonnePerHour), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1433,7 +1441,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1445,7 +1453,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1459,67 +1467,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MassFlow)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MassFlow)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MassFlow)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(MassFlow)) return this; @@ -1533,17 +1541,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(MassFlow)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/MassFlux.g.cs b/UnitsNet/GeneratedCode/Quantities/MassFlux.g.cs index 7e680ee911..81893c0d81 100644 --- a/UnitsNet/GeneratedCode/Quantities/MassFlux.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/MassFlux.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -684,7 +685,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out MassF /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is MassFlux otherQuantity)) return false; @@ -716,7 +717,7 @@ public bool Equals(MassFlux other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is MassFlux otherQuantity)) throw new ArgumentException("Expected type MassFlux.", nameof(obj)); @@ -886,7 +887,7 @@ public MassFlux ToUnit(MassFluxUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(MassFluxUnit unit, out MassFlux? converted) + private bool TryToUnit(MassFluxUnit unit, [NotNullWhen(true)] out MassFlux? converted) { if (Unit == unit) { @@ -894,7 +895,7 @@ private bool TryToUnit(MassFluxUnit unit, out MassFlux? converted) return true; } - converted = (Unit, unit) switch + MassFlux? convertedOrNull = (Unit, unit) switch { // MassFluxUnit -> BaseUnit (MassFluxUnit.GramPerHourPerSquareCentimeter, MassFluxUnit.KilogramPerSecondPerSquareMeter) => new MassFlux(_value / 3.6e2, MassFluxUnit.KilogramPerSecondPerSquareMeter), @@ -922,10 +923,17 @@ private bool TryToUnit(MassFluxUnit unit, out MassFlux? converted) (MassFluxUnit.KilogramPerSecondPerSquareMeter, MassFluxUnit.KilogramPerSecondPerSquareCentimeter) => new MassFlux((_value * 1e-1) / 1e3d, MassFluxUnit.KilogramPerSecondPerSquareCentimeter), (MassFluxUnit.KilogramPerSecondPerSquareMeter, MassFluxUnit.KilogramPerSecondPerSquareMillimeter) => new MassFlux((_value * 1e-3) / 1e3d, MassFluxUnit.KilogramPerSecondPerSquareMillimeter), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -990,7 +998,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1002,7 +1010,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1016,67 +1024,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MassFlux)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MassFlux)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MassFlux)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(MassFlux)) return this; @@ -1090,17 +1098,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(MassFlux)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/MassFraction.g.cs b/UnitsNet/GeneratedCode/Quantities/MassFraction.g.cs index 6132ce4b9e..69c7fefd8c 100644 --- a/UnitsNet/GeneratedCode/Quantities/MassFraction.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/MassFraction.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -915,7 +916,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out MassF /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is MassFraction otherQuantity)) return false; @@ -947,7 +948,7 @@ public bool Equals(MassFraction other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is MassFraction otherQuantity)) throw new ArgumentException("Expected type MassFraction.", nameof(obj)); @@ -1117,7 +1118,7 @@ public MassFraction ToUnit(MassFractionUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(MassFractionUnit unit, out MassFraction? converted) + private bool TryToUnit(MassFractionUnit unit, [NotNullWhen(true)] out MassFraction? converted) { if (Unit == unit) { @@ -1125,7 +1126,7 @@ private bool TryToUnit(MassFractionUnit unit, out MassFraction? converted) return true; } - converted = (Unit, unit) switch + MassFraction? convertedOrNull = (Unit, unit) switch { // MassFractionUnit -> BaseUnit (MassFractionUnit.CentigramPerGram, MassFractionUnit.DecimalFraction) => new MassFraction((_value) * 1e-2d, MassFractionUnit.DecimalFraction), @@ -1177,10 +1178,17 @@ private bool TryToUnit(MassFractionUnit unit, out MassFraction? converted) (MassFractionUnit.DecimalFraction, MassFractionUnit.PartPerTrillion) => new MassFraction(_value * 1e12, MassFractionUnit.PartPerTrillion), (MassFractionUnit.DecimalFraction, MassFractionUnit.Percent) => new MassFraction(_value * 1e2, MassFractionUnit.Percent), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1245,7 +1253,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1257,7 +1265,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1271,67 +1279,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MassFraction)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MassFraction)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MassFraction)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(MassFraction)) return this; @@ -1345,17 +1353,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(MassFraction)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/MassMomentOfInertia.g.cs b/UnitsNet/GeneratedCode/Quantities/MassMomentOfInertia.g.cs index af4c4fe002..40c5ce2af2 100644 --- a/UnitsNet/GeneratedCode/Quantities/MassMomentOfInertia.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/MassMomentOfInertia.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -988,7 +989,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out MassM /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is MassMomentOfInertia otherQuantity)) return false; @@ -1020,7 +1021,7 @@ public bool Equals(MassMomentOfInertia other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is MassMomentOfInertia otherQuantity)) throw new ArgumentException("Expected type MassMomentOfInertia.", nameof(obj)); @@ -1190,7 +1191,7 @@ public MassMomentOfInertia ToUnit(MassMomentOfInertiaUnit unit, UnitConverter un /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(MassMomentOfInertiaUnit unit, out MassMomentOfInertia? converted) + private bool TryToUnit(MassMomentOfInertiaUnit unit, [NotNullWhen(true)] out MassMomentOfInertia? converted) { if (Unit == unit) { @@ -1198,7 +1199,7 @@ private bool TryToUnit(MassMomentOfInertiaUnit unit, out MassMomentOfInertia? co return true; } - converted = (Unit, unit) switch + MassMomentOfInertia? convertedOrNull = (Unit, unit) switch { // MassMomentOfInertiaUnit -> BaseUnit (MassMomentOfInertiaUnit.GramSquareCentimeter, MassMomentOfInertiaUnit.KilogramSquareMeter) => new MassMomentOfInertia(_value / 1e7, MassMomentOfInertiaUnit.KilogramSquareMeter), @@ -1258,10 +1259,17 @@ private bool TryToUnit(MassMomentOfInertiaUnit unit, out MassMomentOfInertia? co (MassMomentOfInertiaUnit.KilogramSquareMeter, MassMomentOfInertiaUnit.TonneSquareMeter) => new MassMomentOfInertia(_value * 1e-3, MassMomentOfInertiaUnit.TonneSquareMeter), (MassMomentOfInertiaUnit.KilogramSquareMeter, MassMomentOfInertiaUnit.TonneSquareMilimeter) => new MassMomentOfInertia(_value * 1e3, MassMomentOfInertiaUnit.TonneSquareMilimeter), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1326,7 +1334,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1338,7 +1346,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1352,67 +1360,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MassMomentOfInertia)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MassMomentOfInertia)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MassMomentOfInertia)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(MassMomentOfInertia)) return this; @@ -1426,17 +1434,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(MassMomentOfInertia)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/MolarEnergy.g.cs b/UnitsNet/GeneratedCode/Quantities/MolarEnergy.g.cs index cc2cadc7de..aa6d7cc4fa 100644 --- a/UnitsNet/GeneratedCode/Quantities/MolarEnergy.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/MolarEnergy.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -513,7 +514,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Molar /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is MolarEnergy otherQuantity)) return false; @@ -545,7 +546,7 @@ public bool Equals(MolarEnergy other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is MolarEnergy otherQuantity)) throw new ArgumentException("Expected type MolarEnergy.", nameof(obj)); @@ -715,7 +716,7 @@ public MolarEnergy ToUnit(MolarEnergyUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(MolarEnergyUnit unit, out MolarEnergy? converted) + private bool TryToUnit(MolarEnergyUnit unit, [NotNullWhen(true)] out MolarEnergy? converted) { if (Unit == unit) { @@ -723,7 +724,7 @@ private bool TryToUnit(MolarEnergyUnit unit, out MolarEnergy? converted) return true; } - converted = (Unit, unit) switch + MolarEnergy? convertedOrNull = (Unit, unit) switch { // MolarEnergyUnit -> BaseUnit (MolarEnergyUnit.KilojoulePerMole, MolarEnergyUnit.JoulePerMole) => new MolarEnergy((_value) * 1e3d, MolarEnergyUnit.JoulePerMole), @@ -733,10 +734,17 @@ private bool TryToUnit(MolarEnergyUnit unit, out MolarEnergy? converted) (MolarEnergyUnit.JoulePerMole, MolarEnergyUnit.KilojoulePerMole) => new MolarEnergy((_value) / 1e3d, MolarEnergyUnit.KilojoulePerMole), (MolarEnergyUnit.JoulePerMole, MolarEnergyUnit.MegajoulePerMole) => new MolarEnergy((_value) / 1e6d, MolarEnergyUnit.MegajoulePerMole), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -801,7 +809,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -813,7 +821,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -827,67 +835,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MolarEnergy)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MolarEnergy)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MolarEnergy)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(MolarEnergy)) return this; @@ -901,17 +909,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(MolarEnergy)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/MolarEntropy.g.cs b/UnitsNet/GeneratedCode/Quantities/MolarEntropy.g.cs index b195f40aed..0f2493fc31 100644 --- a/UnitsNet/GeneratedCode/Quantities/MolarEntropy.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/MolarEntropy.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -513,7 +514,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Molar /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is MolarEntropy otherQuantity)) return false; @@ -545,7 +546,7 @@ public bool Equals(MolarEntropy other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is MolarEntropy otherQuantity)) throw new ArgumentException("Expected type MolarEntropy.", nameof(obj)); @@ -715,7 +716,7 @@ public MolarEntropy ToUnit(MolarEntropyUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(MolarEntropyUnit unit, out MolarEntropy? converted) + private bool TryToUnit(MolarEntropyUnit unit, [NotNullWhen(true)] out MolarEntropy? converted) { if (Unit == unit) { @@ -723,7 +724,7 @@ private bool TryToUnit(MolarEntropyUnit unit, out MolarEntropy? converted) return true; } - converted = (Unit, unit) switch + MolarEntropy? convertedOrNull = (Unit, unit) switch { // MolarEntropyUnit -> BaseUnit (MolarEntropyUnit.KilojoulePerMoleKelvin, MolarEntropyUnit.JoulePerMoleKelvin) => new MolarEntropy((_value) * 1e3d, MolarEntropyUnit.JoulePerMoleKelvin), @@ -733,10 +734,17 @@ private bool TryToUnit(MolarEntropyUnit unit, out MolarEntropy? converted) (MolarEntropyUnit.JoulePerMoleKelvin, MolarEntropyUnit.KilojoulePerMoleKelvin) => new MolarEntropy((_value) / 1e3d, MolarEntropyUnit.KilojoulePerMoleKelvin), (MolarEntropyUnit.JoulePerMoleKelvin, MolarEntropyUnit.MegajoulePerMoleKelvin) => new MolarEntropy((_value) / 1e6d, MolarEntropyUnit.MegajoulePerMoleKelvin), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -801,7 +809,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -813,7 +821,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -827,67 +835,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MolarEntropy)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MolarEntropy)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MolarEntropy)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(MolarEntropy)) return this; @@ -901,17 +909,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(MolarEntropy)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/MolarMass.g.cs b/UnitsNet/GeneratedCode/Quantities/MolarMass.g.cs index b3929046a1..0943adfc2a 100644 --- a/UnitsNet/GeneratedCode/Quantities/MolarMass.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/MolarMass.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -696,7 +697,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Molar /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is MolarMass otherQuantity)) return false; @@ -728,7 +729,7 @@ public bool Equals(MolarMass other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is MolarMass otherQuantity)) throw new ArgumentException("Expected type MolarMass.", nameof(obj)); @@ -898,7 +899,7 @@ public MolarMass ToUnit(MolarMassUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(MolarMassUnit unit, out MolarMass? converted) + private bool TryToUnit(MolarMassUnit unit, [NotNullWhen(true)] out MolarMass? converted) { if (Unit == unit) { @@ -906,7 +907,7 @@ private bool TryToUnit(MolarMassUnit unit, out MolarMass? converted) return true; } - converted = (Unit, unit) switch + MolarMass? convertedOrNull = (Unit, unit) switch { // MolarMassUnit -> BaseUnit (MolarMassUnit.CentigramPerMole, MolarMassUnit.KilogramPerMole) => new MolarMass((_value / 1e3) * 1e-2d, MolarMassUnit.KilogramPerMole), @@ -934,10 +935,17 @@ private bool TryToUnit(MolarMassUnit unit, out MolarMass? converted) (MolarMassUnit.KilogramPerMole, MolarMassUnit.NanogramPerMole) => new MolarMass((_value * 1e3) / 1e-9d, MolarMassUnit.NanogramPerMole), (MolarMassUnit.KilogramPerMole, MolarMassUnit.PoundPerMole) => new MolarMass(_value / 0.45359237, MolarMassUnit.PoundPerMole), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1002,7 +1010,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1014,7 +1022,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1028,67 +1036,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MolarMass)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MolarMass)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(MolarMass)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(MolarMass)) return this; @@ -1102,17 +1110,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(MolarMass)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Molarity.g.cs b/UnitsNet/GeneratedCode/Quantities/Molarity.g.cs index d7de7ec692..43ec171988 100644 --- a/UnitsNet/GeneratedCode/Quantities/Molarity.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Molarity.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -630,7 +631,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Molar /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Molarity otherQuantity)) return false; @@ -662,7 +663,7 @@ public bool Equals(Molarity other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Molarity otherQuantity)) throw new ArgumentException("Expected type Molarity.", nameof(obj)); @@ -832,7 +833,7 @@ public Molarity ToUnit(MolarityUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(MolarityUnit unit, out Molarity? converted) + private bool TryToUnit(MolarityUnit unit, [NotNullWhen(true)] out Molarity? converted) { if (Unit == unit) { @@ -840,7 +841,7 @@ private bool TryToUnit(MolarityUnit unit, out Molarity? converted) return true; } - converted = (Unit, unit) switch + Molarity? convertedOrNull = (Unit, unit) switch { // MolarityUnit -> BaseUnit (MolarityUnit.CentimolePerLiter, MolarityUnit.MolePerCubicMeter) => new Molarity((_value / 1e-3) * 1e-2d, MolarityUnit.MolePerCubicMeter), @@ -862,10 +863,17 @@ private bool TryToUnit(MolarityUnit unit, out Molarity? converted) (MolarityUnit.MolePerCubicMeter, MolarityUnit.NanomolePerLiter) => new Molarity((_value * 1e-3) / 1e-9d, MolarityUnit.NanomolePerLiter), (MolarityUnit.MolePerCubicMeter, MolarityUnit.PicomolePerLiter) => new Molarity((_value * 1e-3) / 1e-12d, MolarityUnit.PicomolePerLiter), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -930,7 +938,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -942,7 +950,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -956,67 +964,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Molarity)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Molarity)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Molarity)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Molarity)) return this; @@ -1030,17 +1038,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Molarity)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Permeability.g.cs b/UnitsNet/GeneratedCode/Quantities/Permeability.g.cs index 4349b772a9..c73e5d3093 100644 --- a/UnitsNet/GeneratedCode/Quantities/Permeability.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Permeability.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -478,7 +479,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Perme /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Permeability otherQuantity)) return false; @@ -510,7 +511,7 @@ public bool Equals(Permeability other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Permeability otherQuantity)) throw new ArgumentException("Expected type Permeability.", nameof(obj)); @@ -680,7 +681,7 @@ public Permeability ToUnit(PermeabilityUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(PermeabilityUnit unit, out Permeability? converted) + private bool TryToUnit(PermeabilityUnit unit, [NotNullWhen(true)] out Permeability? converted) { if (Unit == unit) { @@ -688,16 +689,23 @@ private bool TryToUnit(PermeabilityUnit unit, out Permeability? converted) return true; } - converted = (Unit, unit) switch + Permeability? convertedOrNull = (Unit, unit) switch { // PermeabilityUnit -> BaseUnit // BaseUnit -> PermeabilityUnit - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -762,7 +770,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -774,7 +782,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -788,67 +796,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Permeability)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Permeability)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Permeability)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Permeability)) return this; @@ -862,17 +870,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Permeability)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Permittivity.g.cs b/UnitsNet/GeneratedCode/Quantities/Permittivity.g.cs index 4704d8a91d..170400b0e6 100644 --- a/UnitsNet/GeneratedCode/Quantities/Permittivity.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Permittivity.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -478,7 +479,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Permi /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Permittivity otherQuantity)) return false; @@ -510,7 +511,7 @@ public bool Equals(Permittivity other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Permittivity otherQuantity)) throw new ArgumentException("Expected type Permittivity.", nameof(obj)); @@ -680,7 +681,7 @@ public Permittivity ToUnit(PermittivityUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(PermittivityUnit unit, out Permittivity? converted) + private bool TryToUnit(PermittivityUnit unit, [NotNullWhen(true)] out Permittivity? converted) { if (Unit == unit) { @@ -688,16 +689,23 @@ private bool TryToUnit(PermittivityUnit unit, out Permittivity? converted) return true; } - converted = (Unit, unit) switch + Permittivity? convertedOrNull = (Unit, unit) switch { // PermittivityUnit -> BaseUnit // BaseUnit -> PermittivityUnit - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -762,7 +770,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -774,7 +782,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -788,67 +796,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Permittivity)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Permittivity)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Permittivity)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Permittivity)) return this; @@ -862,17 +870,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Permittivity)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/PorousMediumPermeability.g.cs b/UnitsNet/GeneratedCode/Quantities/PorousMediumPermeability.g.cs index 8c2ba5a2d6..06b4be289b 100644 --- a/UnitsNet/GeneratedCode/Quantities/PorousMediumPermeability.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/PorousMediumPermeability.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -554,7 +555,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Porou /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is PorousMediumPermeability otherQuantity)) return false; @@ -586,7 +587,7 @@ public bool Equals(PorousMediumPermeability other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is PorousMediumPermeability otherQuantity)) throw new ArgumentException("Expected type PorousMediumPermeability.", nameof(obj)); @@ -756,7 +757,7 @@ public PorousMediumPermeability ToUnit(PorousMediumPermeabilityUnit unit, UnitCo /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(PorousMediumPermeabilityUnit unit, out PorousMediumPermeability? converted) + private bool TryToUnit(PorousMediumPermeabilityUnit unit, [NotNullWhen(true)] out PorousMediumPermeability? converted) { if (Unit == unit) { @@ -764,7 +765,7 @@ private bool TryToUnit(PorousMediumPermeabilityUnit unit, out PorousMediumPermea return true; } - converted = (Unit, unit) switch + PorousMediumPermeability? convertedOrNull = (Unit, unit) switch { // PorousMediumPermeabilityUnit -> BaseUnit (PorousMediumPermeabilityUnit.Darcy, PorousMediumPermeabilityUnit.SquareMeter) => new PorousMediumPermeability(_value * 9.869233e-13, PorousMediumPermeabilityUnit.SquareMeter), @@ -778,10 +779,17 @@ private bool TryToUnit(PorousMediumPermeabilityUnit unit, out PorousMediumPermea (PorousMediumPermeabilityUnit.SquareMeter, PorousMediumPermeabilityUnit.Millidarcy) => new PorousMediumPermeability((_value / 9.869233e-13) / 1e-3d, PorousMediumPermeabilityUnit.Millidarcy), (PorousMediumPermeabilityUnit.SquareMeter, PorousMediumPermeabilityUnit.SquareCentimeter) => new PorousMediumPermeability(_value / 1e-4, PorousMediumPermeabilityUnit.SquareCentimeter), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -846,7 +854,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -858,7 +866,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -872,67 +880,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(PorousMediumPermeability)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(PorousMediumPermeability)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(PorousMediumPermeability)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(PorousMediumPermeability)) return this; @@ -946,17 +954,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(PorousMediumPermeability)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Power.g.cs b/UnitsNet/GeneratedCode/Quantities/Power.g.cs index 6c2a900761..a514d7740d 100644 --- a/UnitsNet/GeneratedCode/Quantities/Power.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Power.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -953,7 +954,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Power /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, decimal, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Power otherQuantity)) return false; @@ -985,7 +986,7 @@ public bool Equals(Power other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Power otherQuantity)) throw new ArgumentException("Expected type Power.", nameof(obj)); @@ -1166,7 +1167,7 @@ public Power ToUnit(PowerUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(PowerUnit unit, out Power? converted) + private bool TryToUnit(PowerUnit unit, [NotNullWhen(true)] out Power? converted) { if (Unit == unit) { @@ -1174,7 +1175,7 @@ private bool TryToUnit(PowerUnit unit, out Power? converted) return true; } - converted = (Unit, unit) switch + Power? convertedOrNull = (Unit, unit) switch { // PowerUnit -> BaseUnit (PowerUnit.BoilerHorsepower, PowerUnit.Watt) => new Power(_value * 9812.5m, PowerUnit.Watt), @@ -1230,10 +1231,17 @@ private bool TryToUnit(PowerUnit unit, out Power? converted) (PowerUnit.Watt, PowerUnit.Picowatt) => new Power((_value) / 1e-12m, PowerUnit.Picowatt), (PowerUnit.Watt, PowerUnit.Terawatt) => new Power((_value) / 1e12m, PowerUnit.Terawatt), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1298,7 +1306,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1310,7 +1318,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1324,67 +1332,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Power)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Power)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Power)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Power)) return this; @@ -1398,17 +1406,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Power)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/PowerDensity.g.cs b/UnitsNet/GeneratedCode/Quantities/PowerDensity.g.cs index 35becfd899..2a2379987b 100644 --- a/UnitsNet/GeneratedCode/Quantities/PowerDensity.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/PowerDensity.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -1292,7 +1293,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Power /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is PowerDensity otherQuantity)) return false; @@ -1324,7 +1325,7 @@ public bool Equals(PowerDensity other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is PowerDensity otherQuantity)) throw new ArgumentException("Expected type PowerDensity.", nameof(obj)); @@ -1494,7 +1495,7 @@ public PowerDensity ToUnit(PowerDensityUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(PowerDensityUnit unit, out PowerDensity? converted) + private bool TryToUnit(PowerDensityUnit unit, [NotNullWhen(true)] out PowerDensity? converted) { if (Unit == unit) { @@ -1502,7 +1503,7 @@ private bool TryToUnit(PowerDensityUnit unit, out PowerDensity? converted) return true; } - converted = (Unit, unit) switch + PowerDensity? convertedOrNull = (Unit, unit) switch { // PowerDensityUnit -> BaseUnit (PowerDensityUnit.DecawattPerCubicFoot, PowerDensityUnit.WattPerCubicMeter) => new PowerDensity((_value * 3.531466672148859e1) * 1e1d, PowerDensityUnit.WattPerCubicMeter), @@ -1594,10 +1595,17 @@ private bool TryToUnit(PowerDensityUnit unit, out PowerDensity? converted) (PowerDensityUnit.WattPerCubicMeter, PowerDensityUnit.WattPerCubicInch) => new PowerDensity(_value / 6.102374409473228e4, PowerDensityUnit.WattPerCubicInch), (PowerDensityUnit.WattPerCubicMeter, PowerDensityUnit.WattPerLiter) => new PowerDensity(_value / 1.0e3, PowerDensityUnit.WattPerLiter), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1662,7 +1670,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1674,7 +1682,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1688,67 +1696,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(PowerDensity)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(PowerDensity)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(PowerDensity)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(PowerDensity)) return this; @@ -1762,17 +1770,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(PowerDensity)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/PowerRatio.g.cs b/UnitsNet/GeneratedCode/Quantities/PowerRatio.g.cs index bae5d5e9b3..01534186c5 100644 --- a/UnitsNet/GeneratedCode/Quantities/PowerRatio.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/PowerRatio.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -502,7 +503,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Power /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is PowerRatio otherQuantity)) return false; @@ -534,7 +535,7 @@ public bool Equals(PowerRatio other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is PowerRatio otherQuantity)) throw new ArgumentException("Expected type PowerRatio.", nameof(obj)); @@ -704,7 +705,7 @@ public PowerRatio ToUnit(PowerRatioUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(PowerRatioUnit unit, out PowerRatio? converted) + private bool TryToUnit(PowerRatioUnit unit, [NotNullWhen(true)] out PowerRatio? converted) { if (Unit == unit) { @@ -712,7 +713,7 @@ private bool TryToUnit(PowerRatioUnit unit, out PowerRatio? converted) return true; } - converted = (Unit, unit) switch + PowerRatio? convertedOrNull = (Unit, unit) switch { // PowerRatioUnit -> BaseUnit (PowerRatioUnit.DecibelMilliwatt, PowerRatioUnit.DecibelWatt) => new PowerRatio(_value - 30, PowerRatioUnit.DecibelWatt), @@ -720,10 +721,17 @@ private bool TryToUnit(PowerRatioUnit unit, out PowerRatio? converted) // BaseUnit -> PowerRatioUnit (PowerRatioUnit.DecibelWatt, PowerRatioUnit.DecibelMilliwatt) => new PowerRatio(_value + 30, PowerRatioUnit.DecibelMilliwatt), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -788,7 +796,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -800,7 +808,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -814,67 +822,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(PowerRatio)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(PowerRatio)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(PowerRatio)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(PowerRatio)) return this; @@ -888,17 +896,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(PowerRatio)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Pressure.g.cs b/UnitsNet/GeneratedCode/Quantities/Pressure.g.cs index 878bd296e6..296a10bec7 100644 --- a/UnitsNet/GeneratedCode/Quantities/Pressure.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Pressure.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -1380,7 +1381,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Press /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Pressure otherQuantity)) return false; @@ -1412,7 +1413,7 @@ public bool Equals(Pressure other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Pressure otherQuantity)) throw new ArgumentException("Expected type Pressure.", nameof(obj)); @@ -1582,7 +1583,7 @@ public Pressure ToUnit(PressureUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(PressureUnit unit, out Pressure? converted) + private bool TryToUnit(PressureUnit unit, [NotNullWhen(true)] out Pressure? converted) { if (Unit == unit) { @@ -1590,7 +1591,7 @@ private bool TryToUnit(PressureUnit unit, out Pressure? converted) return true; } - converted = (Unit, unit) switch + Pressure? convertedOrNull = (Unit, unit) switch { // PressureUnit -> BaseUnit (PressureUnit.Atmosphere, PressureUnit.Pascal) => new Pressure(_value * 1.01325 * 1e5, PressureUnit.Pascal), @@ -1688,10 +1689,17 @@ private bool TryToUnit(PressureUnit unit, out Pressure? converted) (PressureUnit.Pascal, PressureUnit.TonneForcePerSquareMillimeter) => new Pressure(_value / 9.80665e9, PressureUnit.TonneForcePerSquareMillimeter), (PressureUnit.Pascal, PressureUnit.Torr) => new Pressure(_value / (1.3332266752 * 1e2), PressureUnit.Torr), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1756,7 +1764,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1768,7 +1776,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1782,67 +1790,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Pressure)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Pressure)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Pressure)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Pressure)) return this; @@ -1856,17 +1864,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Pressure)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/PressureChangeRate.g.cs b/UnitsNet/GeneratedCode/Quantities/PressureChangeRate.g.cs index e9c92a19db..dacfac6ffe 100644 --- a/UnitsNet/GeneratedCode/Quantities/PressureChangeRate.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/PressureChangeRate.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -736,7 +737,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Press /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is PressureChangeRate otherQuantity)) return false; @@ -768,7 +769,7 @@ public bool Equals(PressureChangeRate other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is PressureChangeRate otherQuantity)) throw new ArgumentException("Expected type PressureChangeRate.", nameof(obj)); @@ -938,7 +939,7 @@ public PressureChangeRate ToUnit(PressureChangeRateUnit unit, UnitConverter unit /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(PressureChangeRateUnit unit, out PressureChangeRate? converted) + private bool TryToUnit(PressureChangeRateUnit unit, [NotNullWhen(true)] out PressureChangeRate? converted) { if (Unit == unit) { @@ -946,7 +947,7 @@ private bool TryToUnit(PressureChangeRateUnit unit, out PressureChangeRate? conv return true; } - converted = (Unit, unit) switch + PressureChangeRate? convertedOrNull = (Unit, unit) switch { // PressureChangeRateUnit -> BaseUnit (PressureChangeRateUnit.AtmospherePerSecond, PressureChangeRateUnit.PascalPerSecond) => new PressureChangeRate(_value * 1.01325 * 1e5, PressureChangeRateUnit.PascalPerSecond), @@ -978,10 +979,17 @@ private bool TryToUnit(PressureChangeRateUnit unit, out PressureChangeRate? conv (PressureChangeRateUnit.PascalPerSecond, PressureChangeRateUnit.PoundForcePerSquareInchPerMinute) => new PressureChangeRate(_value / 6.894757293168361e3 * 60, PressureChangeRateUnit.PoundForcePerSquareInchPerMinute), (PressureChangeRateUnit.PascalPerSecond, PressureChangeRateUnit.PoundForcePerSquareInchPerSecond) => new PressureChangeRate(_value / 6.894757293168361e3, PressureChangeRateUnit.PoundForcePerSquareInchPerSecond), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1046,7 +1054,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1058,7 +1066,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1072,67 +1080,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(PressureChangeRate)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(PressureChangeRate)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(PressureChangeRate)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(PressureChangeRate)) return this; @@ -1146,17 +1154,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(PressureChangeRate)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Ratio.g.cs b/UnitsNet/GeneratedCode/Quantities/Ratio.g.cs index 5a12dc4fd9..bd86461606 100644 --- a/UnitsNet/GeneratedCode/Quantities/Ratio.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Ratio.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -570,7 +571,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Ratio /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Ratio otherQuantity)) return false; @@ -602,7 +603,7 @@ public bool Equals(Ratio other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Ratio otherQuantity)) throw new ArgumentException("Expected type Ratio.", nameof(obj)); @@ -772,7 +773,7 @@ public Ratio ToUnit(RatioUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(RatioUnit unit, out Ratio? converted) + private bool TryToUnit(RatioUnit unit, [NotNullWhen(true)] out Ratio? converted) { if (Unit == unit) { @@ -780,7 +781,7 @@ private bool TryToUnit(RatioUnit unit, out Ratio? converted) return true; } - converted = (Unit, unit) switch + Ratio? convertedOrNull = (Unit, unit) switch { // RatioUnit -> BaseUnit (RatioUnit.PartPerBillion, RatioUnit.DecimalFraction) => new Ratio(_value / 1e9, RatioUnit.DecimalFraction), @@ -796,10 +797,17 @@ private bool TryToUnit(RatioUnit unit, out Ratio? converted) (RatioUnit.DecimalFraction, RatioUnit.PartPerTrillion) => new Ratio(_value * 1e12, RatioUnit.PartPerTrillion), (RatioUnit.DecimalFraction, RatioUnit.Percent) => new Ratio(_value * 1e2, RatioUnit.Percent), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -864,7 +872,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -876,7 +884,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -890,67 +898,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Ratio)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Ratio)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Ratio)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Ratio)) return this; @@ -964,17 +972,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Ratio)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/RatioChangeRate.g.cs b/UnitsNet/GeneratedCode/Quantities/RatioChangeRate.g.cs index ddffc1cf3d..823ec56232 100644 --- a/UnitsNet/GeneratedCode/Quantities/RatioChangeRate.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/RatioChangeRate.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -494,7 +495,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Ratio /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is RatioChangeRate otherQuantity)) return false; @@ -526,7 +527,7 @@ public bool Equals(RatioChangeRate other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is RatioChangeRate otherQuantity)) throw new ArgumentException("Expected type RatioChangeRate.", nameof(obj)); @@ -696,7 +697,7 @@ public RatioChangeRate ToUnit(RatioChangeRateUnit unit, UnitConverter unitConver /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(RatioChangeRateUnit unit, out RatioChangeRate? converted) + private bool TryToUnit(RatioChangeRateUnit unit, [NotNullWhen(true)] out RatioChangeRate? converted) { if (Unit == unit) { @@ -704,7 +705,7 @@ private bool TryToUnit(RatioChangeRateUnit unit, out RatioChangeRate? converted) return true; } - converted = (Unit, unit) switch + RatioChangeRate? convertedOrNull = (Unit, unit) switch { // RatioChangeRateUnit -> BaseUnit (RatioChangeRateUnit.PercentPerSecond, RatioChangeRateUnit.DecimalFractionPerSecond) => new RatioChangeRate(_value / 1e2, RatioChangeRateUnit.DecimalFractionPerSecond), @@ -712,10 +713,17 @@ private bool TryToUnit(RatioChangeRateUnit unit, out RatioChangeRate? converted) // BaseUnit -> RatioChangeRateUnit (RatioChangeRateUnit.DecimalFractionPerSecond, RatioChangeRateUnit.PercentPerSecond) => new RatioChangeRate(_value * 1e2, RatioChangeRateUnit.PercentPerSecond), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -780,7 +788,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -792,7 +800,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -806,67 +814,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(RatioChangeRate)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(RatioChangeRate)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(RatioChangeRate)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(RatioChangeRate)) return this; @@ -880,17 +888,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(RatioChangeRate)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ReactiveEnergy.g.cs b/UnitsNet/GeneratedCode/Quantities/ReactiveEnergy.g.cs index 6c26f6d502..eeb257cafc 100644 --- a/UnitsNet/GeneratedCode/Quantities/ReactiveEnergy.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ReactiveEnergy.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -513,7 +514,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out React /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ReactiveEnergy otherQuantity)) return false; @@ -545,7 +546,7 @@ public bool Equals(ReactiveEnergy other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ReactiveEnergy otherQuantity)) throw new ArgumentException("Expected type ReactiveEnergy.", nameof(obj)); @@ -715,7 +716,7 @@ public ReactiveEnergy ToUnit(ReactiveEnergyUnit unit, UnitConverter unitConverte /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ReactiveEnergyUnit unit, out ReactiveEnergy? converted) + private bool TryToUnit(ReactiveEnergyUnit unit, [NotNullWhen(true)] out ReactiveEnergy? converted) { if (Unit == unit) { @@ -723,7 +724,7 @@ private bool TryToUnit(ReactiveEnergyUnit unit, out ReactiveEnergy? converted) return true; } - converted = (Unit, unit) switch + ReactiveEnergy? convertedOrNull = (Unit, unit) switch { // ReactiveEnergyUnit -> BaseUnit (ReactiveEnergyUnit.KilovoltampereReactiveHour, ReactiveEnergyUnit.VoltampereReactiveHour) => new ReactiveEnergy((_value) * 1e3d, ReactiveEnergyUnit.VoltampereReactiveHour), @@ -733,10 +734,17 @@ private bool TryToUnit(ReactiveEnergyUnit unit, out ReactiveEnergy? converted) (ReactiveEnergyUnit.VoltampereReactiveHour, ReactiveEnergyUnit.KilovoltampereReactiveHour) => new ReactiveEnergy((_value) / 1e3d, ReactiveEnergyUnit.KilovoltampereReactiveHour), (ReactiveEnergyUnit.VoltampereReactiveHour, ReactiveEnergyUnit.MegavoltampereReactiveHour) => new ReactiveEnergy((_value) / 1e6d, ReactiveEnergyUnit.MegavoltampereReactiveHour), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -801,7 +809,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -813,7 +821,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -827,67 +835,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ReactiveEnergy)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ReactiveEnergy)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ReactiveEnergy)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ReactiveEnergy)) return this; @@ -901,17 +909,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ReactiveEnergy)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ReactivePower.g.cs b/UnitsNet/GeneratedCode/Quantities/ReactivePower.g.cs index c0d1b5cc71..ed55b8f831 100644 --- a/UnitsNet/GeneratedCode/Quantities/ReactivePower.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ReactivePower.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -532,7 +533,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out React /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ReactivePower otherQuantity)) return false; @@ -564,7 +565,7 @@ public bool Equals(ReactivePower other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ReactivePower otherQuantity)) throw new ArgumentException("Expected type ReactivePower.", nameof(obj)); @@ -734,7 +735,7 @@ public ReactivePower ToUnit(ReactivePowerUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ReactivePowerUnit unit, out ReactivePower? converted) + private bool TryToUnit(ReactivePowerUnit unit, [NotNullWhen(true)] out ReactivePower? converted) { if (Unit == unit) { @@ -742,7 +743,7 @@ private bool TryToUnit(ReactivePowerUnit unit, out ReactivePower? converted) return true; } - converted = (Unit, unit) switch + ReactivePower? convertedOrNull = (Unit, unit) switch { // ReactivePowerUnit -> BaseUnit (ReactivePowerUnit.GigavoltampereReactive, ReactivePowerUnit.VoltampereReactive) => new ReactivePower((_value) * 1e9d, ReactivePowerUnit.VoltampereReactive), @@ -754,10 +755,17 @@ private bool TryToUnit(ReactivePowerUnit unit, out ReactivePower? converted) (ReactivePowerUnit.VoltampereReactive, ReactivePowerUnit.KilovoltampereReactive) => new ReactivePower((_value) / 1e3d, ReactivePowerUnit.KilovoltampereReactive), (ReactivePowerUnit.VoltampereReactive, ReactivePowerUnit.MegavoltampereReactive) => new ReactivePower((_value) / 1e6d, ReactivePowerUnit.MegavoltampereReactive), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -822,7 +830,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -834,7 +842,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -848,67 +856,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ReactivePower)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ReactivePower)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ReactivePower)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ReactivePower)) return this; @@ -922,17 +930,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ReactivePower)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ReciprocalArea.g.cs b/UnitsNet/GeneratedCode/Quantities/ReciprocalArea.g.cs index 12fe121d52..271b01ba1c 100644 --- a/UnitsNet/GeneratedCode/Quantities/ReciprocalArea.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ReciprocalArea.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -668,7 +669,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Recip /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ReciprocalArea otherQuantity)) return false; @@ -700,7 +701,7 @@ public bool Equals(ReciprocalArea other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ReciprocalArea otherQuantity)) throw new ArgumentException("Expected type ReciprocalArea.", nameof(obj)); @@ -870,7 +871,7 @@ public ReciprocalArea ToUnit(ReciprocalAreaUnit unit, UnitConverter unitConverte /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ReciprocalAreaUnit unit, out ReciprocalArea? converted) + private bool TryToUnit(ReciprocalAreaUnit unit, [NotNullWhen(true)] out ReciprocalArea? converted) { if (Unit == unit) { @@ -878,7 +879,7 @@ private bool TryToUnit(ReciprocalAreaUnit unit, out ReciprocalArea? converted) return true; } - converted = (Unit, unit) switch + ReciprocalArea? convertedOrNull = (Unit, unit) switch { // ReciprocalAreaUnit -> BaseUnit (ReciprocalAreaUnit.InverseSquareCentimeter, ReciprocalAreaUnit.InverseSquareMeter) => new ReciprocalArea(_value / 1e-4, ReciprocalAreaUnit.InverseSquareMeter), @@ -904,10 +905,17 @@ private bool TryToUnit(ReciprocalAreaUnit unit, out ReciprocalArea? converted) (ReciprocalAreaUnit.InverseSquareMeter, ReciprocalAreaUnit.InverseSquareYard) => new ReciprocalArea(_value * 0.836127, ReciprocalAreaUnit.InverseSquareYard), (ReciprocalAreaUnit.InverseSquareMeter, ReciprocalAreaUnit.InverseUsSurveySquareFoot) => new ReciprocalArea(_value * 0.09290341161, ReciprocalAreaUnit.InverseUsSurveySquareFoot), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -972,7 +980,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -984,7 +992,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -998,67 +1006,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ReciprocalArea)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ReciprocalArea)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ReciprocalArea)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ReciprocalArea)) return this; @@ -1072,17 +1080,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ReciprocalArea)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ReciprocalLength.g.cs b/UnitsNet/GeneratedCode/Quantities/ReciprocalLength.g.cs index 13096334be..94c0499e00 100644 --- a/UnitsNet/GeneratedCode/Quantities/ReciprocalLength.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ReciprocalLength.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -649,7 +650,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Recip /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ReciprocalLength otherQuantity)) return false; @@ -681,7 +682,7 @@ public bool Equals(ReciprocalLength other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ReciprocalLength otherQuantity)) throw new ArgumentException("Expected type ReciprocalLength.", nameof(obj)); @@ -851,7 +852,7 @@ public ReciprocalLength ToUnit(ReciprocalLengthUnit unit, UnitConverter unitConv /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ReciprocalLengthUnit unit, out ReciprocalLength? converted) + private bool TryToUnit(ReciprocalLengthUnit unit, [NotNullWhen(true)] out ReciprocalLength? converted) { if (Unit == unit) { @@ -859,7 +860,7 @@ private bool TryToUnit(ReciprocalLengthUnit unit, out ReciprocalLength? converte return true; } - converted = (Unit, unit) switch + ReciprocalLength? convertedOrNull = (Unit, unit) switch { // ReciprocalLengthUnit -> BaseUnit (ReciprocalLengthUnit.InverseCentimeter, ReciprocalLengthUnit.InverseMeter) => new ReciprocalLength(_value * 1e2, ReciprocalLengthUnit.InverseMeter), @@ -883,10 +884,17 @@ private bool TryToUnit(ReciprocalLengthUnit unit, out ReciprocalLength? converte (ReciprocalLengthUnit.InverseMeter, ReciprocalLengthUnit.InverseUsSurveyFoot) => new ReciprocalLength(_value * 1200 / 3937, ReciprocalLengthUnit.InverseUsSurveyFoot), (ReciprocalLengthUnit.InverseMeter, ReciprocalLengthUnit.InverseYard) => new ReciprocalLength(_value * 0.9144, ReciprocalLengthUnit.InverseYard), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -951,7 +959,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -963,7 +971,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -977,67 +985,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ReciprocalLength)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ReciprocalLength)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ReciprocalLength)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ReciprocalLength)) return this; @@ -1051,17 +1059,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ReciprocalLength)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/RelativeHumidity.g.cs b/UnitsNet/GeneratedCode/Quantities/RelativeHumidity.g.cs index 90a3a06769..445f65c7a0 100644 --- a/UnitsNet/GeneratedCode/Quantities/RelativeHumidity.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/RelativeHumidity.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -475,7 +476,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Relat /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is RelativeHumidity otherQuantity)) return false; @@ -507,7 +508,7 @@ public bool Equals(RelativeHumidity other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is RelativeHumidity otherQuantity)) throw new ArgumentException("Expected type RelativeHumidity.", nameof(obj)); @@ -677,7 +678,7 @@ public RelativeHumidity ToUnit(RelativeHumidityUnit unit, UnitConverter unitConv /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(RelativeHumidityUnit unit, out RelativeHumidity? converted) + private bool TryToUnit(RelativeHumidityUnit unit, [NotNullWhen(true)] out RelativeHumidity? converted) { if (Unit == unit) { @@ -685,16 +686,23 @@ private bool TryToUnit(RelativeHumidityUnit unit, out RelativeHumidity? converte return true; } - converted = (Unit, unit) switch + RelativeHumidity? convertedOrNull = (Unit, unit) switch { // RelativeHumidityUnit -> BaseUnit // BaseUnit -> RelativeHumidityUnit - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -759,7 +767,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -771,7 +779,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -785,67 +793,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(RelativeHumidity)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(RelativeHumidity)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(RelativeHumidity)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(RelativeHumidity)) return this; @@ -859,17 +867,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(RelativeHumidity)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/RotationalAcceleration.g.cs b/UnitsNet/GeneratedCode/Quantities/RotationalAcceleration.g.cs index 5a62a4896b..229caa126f 100644 --- a/UnitsNet/GeneratedCode/Quantities/RotationalAcceleration.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/RotationalAcceleration.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -532,7 +533,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Rotat /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is RotationalAcceleration otherQuantity)) return false; @@ -564,7 +565,7 @@ public bool Equals(RotationalAcceleration other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is RotationalAcceleration otherQuantity)) throw new ArgumentException("Expected type RotationalAcceleration.", nameof(obj)); @@ -734,7 +735,7 @@ public RotationalAcceleration ToUnit(RotationalAccelerationUnit unit, UnitConver /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(RotationalAccelerationUnit unit, out RotationalAcceleration? converted) + private bool TryToUnit(RotationalAccelerationUnit unit, [NotNullWhen(true)] out RotationalAcceleration? converted) { if (Unit == unit) { @@ -742,7 +743,7 @@ private bool TryToUnit(RotationalAccelerationUnit unit, out RotationalAccelerati return true; } - converted = (Unit, unit) switch + RotationalAcceleration? convertedOrNull = (Unit, unit) switch { // RotationalAccelerationUnit -> BaseUnit (RotationalAccelerationUnit.DegreePerSecondSquared, RotationalAccelerationUnit.RadianPerSecondSquared) => new RotationalAcceleration((Math.PI / 180) * _value, RotationalAccelerationUnit.RadianPerSecondSquared), @@ -754,10 +755,17 @@ private bool TryToUnit(RotationalAccelerationUnit unit, out RotationalAccelerati (RotationalAccelerationUnit.RadianPerSecondSquared, RotationalAccelerationUnit.RevolutionPerMinutePerSecond) => new RotationalAcceleration((60 / (2 * Math.PI)) * _value, RotationalAccelerationUnit.RevolutionPerMinutePerSecond), (RotationalAccelerationUnit.RadianPerSecondSquared, RotationalAccelerationUnit.RevolutionPerSecondSquared) => new RotationalAcceleration((1 / (2 * Math.PI)) * _value, RotationalAccelerationUnit.RevolutionPerSecondSquared), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -822,7 +830,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -834,7 +842,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -848,67 +856,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(RotationalAcceleration)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(RotationalAcceleration)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(RotationalAcceleration)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(RotationalAcceleration)) return this; @@ -922,17 +930,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(RotationalAcceleration)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/RotationalSpeed.g.cs b/UnitsNet/GeneratedCode/Quantities/RotationalSpeed.g.cs index cba7ab82ba..946d5c8a42 100644 --- a/UnitsNet/GeneratedCode/Quantities/RotationalSpeed.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/RotationalSpeed.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -715,7 +716,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Rotat /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is RotationalSpeed otherQuantity)) return false; @@ -747,7 +748,7 @@ public bool Equals(RotationalSpeed other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is RotationalSpeed otherQuantity)) throw new ArgumentException("Expected type RotationalSpeed.", nameof(obj)); @@ -917,7 +918,7 @@ public RotationalSpeed ToUnit(RotationalSpeedUnit unit, UnitConverter unitConver /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(RotationalSpeedUnit unit, out RotationalSpeed? converted) + private bool TryToUnit(RotationalSpeedUnit unit, [NotNullWhen(true)] out RotationalSpeed? converted) { if (Unit == unit) { @@ -925,7 +926,7 @@ private bool TryToUnit(RotationalSpeedUnit unit, out RotationalSpeed? converted) return true; } - converted = (Unit, unit) switch + RotationalSpeed? convertedOrNull = (Unit, unit) switch { // RotationalSpeedUnit -> BaseUnit (RotationalSpeedUnit.CentiradianPerSecond, RotationalSpeedUnit.RadianPerSecond) => new RotationalSpeed((_value) * 1e-2d, RotationalSpeedUnit.RadianPerSecond), @@ -955,10 +956,17 @@ private bool TryToUnit(RotationalSpeedUnit unit, out RotationalSpeed? converted) (RotationalSpeedUnit.RadianPerSecond, RotationalSpeedUnit.RevolutionPerMinute) => new RotationalSpeed((_value / 6.2831853072) * 60, RotationalSpeedUnit.RevolutionPerMinute), (RotationalSpeedUnit.RadianPerSecond, RotationalSpeedUnit.RevolutionPerSecond) => new RotationalSpeed(_value / 6.2831853072, RotationalSpeedUnit.RevolutionPerSecond), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1023,7 +1031,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1035,7 +1043,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1049,67 +1057,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(RotationalSpeed)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(RotationalSpeed)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(RotationalSpeed)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(RotationalSpeed)) return this; @@ -1123,17 +1131,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(RotationalSpeed)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/RotationalStiffness.g.cs b/UnitsNet/GeneratedCode/Quantities/RotationalStiffness.g.cs index 55c31efb3b..0af5755918 100644 --- a/UnitsNet/GeneratedCode/Quantities/RotationalStiffness.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/RotationalStiffness.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -1083,7 +1084,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Rotat /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is RotationalStiffness otherQuantity)) return false; @@ -1115,7 +1116,7 @@ public bool Equals(RotationalStiffness other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is RotationalStiffness otherQuantity)) throw new ArgumentException("Expected type RotationalStiffness.", nameof(obj)); @@ -1285,7 +1286,7 @@ public RotationalStiffness ToUnit(RotationalStiffnessUnit unit, UnitConverter un /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(RotationalStiffnessUnit unit, out RotationalStiffness? converted) + private bool TryToUnit(RotationalStiffnessUnit unit, [NotNullWhen(true)] out RotationalStiffness? converted) { if (Unit == unit) { @@ -1293,7 +1294,7 @@ private bool TryToUnit(RotationalStiffnessUnit unit, out RotationalStiffness? co return true; } - converted = (Unit, unit) switch + RotationalStiffness? convertedOrNull = (Unit, unit) switch { // RotationalStiffnessUnit -> BaseUnit (RotationalStiffnessUnit.CentinewtonMeterPerDegree, RotationalStiffnessUnit.NewtonMeterPerRadian) => new RotationalStiffness((_value * (180 / Math.PI)) * 1e-2d, RotationalStiffnessUnit.NewtonMeterPerRadian), @@ -1363,10 +1364,17 @@ private bool TryToUnit(RotationalStiffnessUnit unit, out RotationalStiffness? co (RotationalStiffnessUnit.NewtonMeterPerRadian, RotationalStiffnessUnit.PoundForceFeetPerRadian) => new RotationalStiffness(_value / 1.3558179483314, RotationalStiffnessUnit.PoundForceFeetPerRadian), (RotationalStiffnessUnit.NewtonMeterPerRadian, RotationalStiffnessUnit.PoundForceFootPerDegrees) => new RotationalStiffness(_value / 77.6826, RotationalStiffnessUnit.PoundForceFootPerDegrees), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1431,7 +1439,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1443,7 +1451,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1457,67 +1465,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(RotationalStiffness)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(RotationalStiffness)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(RotationalStiffness)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(RotationalStiffness)) return this; @@ -1531,17 +1539,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(RotationalStiffness)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/RotationalStiffnessPerLength.g.cs b/UnitsNet/GeneratedCode/Quantities/RotationalStiffnessPerLength.g.cs index 3271a39e7f..ffa027ea3f 100644 --- a/UnitsNet/GeneratedCode/Quantities/RotationalStiffnessPerLength.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/RotationalStiffnessPerLength.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -551,7 +552,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Rotat /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is RotationalStiffnessPerLength otherQuantity)) return false; @@ -583,7 +584,7 @@ public bool Equals(RotationalStiffnessPerLength other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is RotationalStiffnessPerLength otherQuantity)) throw new ArgumentException("Expected type RotationalStiffnessPerLength.", nameof(obj)); @@ -753,7 +754,7 @@ public RotationalStiffnessPerLength ToUnit(RotationalStiffnessPerLengthUnit unit /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(RotationalStiffnessPerLengthUnit unit, out RotationalStiffnessPerLength? converted) + private bool TryToUnit(RotationalStiffnessPerLengthUnit unit, [NotNullWhen(true)] out RotationalStiffnessPerLength? converted) { if (Unit == unit) { @@ -761,7 +762,7 @@ private bool TryToUnit(RotationalStiffnessPerLengthUnit unit, out RotationalStif return true; } - converted = (Unit, unit) switch + RotationalStiffnessPerLength? convertedOrNull = (Unit, unit) switch { // RotationalStiffnessPerLengthUnit -> BaseUnit (RotationalStiffnessPerLengthUnit.KilonewtonMeterPerRadianPerMeter, RotationalStiffnessPerLengthUnit.NewtonMeterPerRadianPerMeter) => new RotationalStiffnessPerLength((_value) * 1e3d, RotationalStiffnessPerLengthUnit.NewtonMeterPerRadianPerMeter), @@ -775,10 +776,17 @@ private bool TryToUnit(RotationalStiffnessPerLengthUnit unit, out RotationalStif (RotationalStiffnessPerLengthUnit.NewtonMeterPerRadianPerMeter, RotationalStiffnessPerLengthUnit.MeganewtonMeterPerRadianPerMeter) => new RotationalStiffnessPerLength((_value) / 1e6d, RotationalStiffnessPerLengthUnit.MeganewtonMeterPerRadianPerMeter), (RotationalStiffnessPerLengthUnit.NewtonMeterPerRadianPerMeter, RotationalStiffnessPerLengthUnit.PoundForceFootPerDegreesPerFoot) => new RotationalStiffnessPerLength(_value / 254.864324570, RotationalStiffnessPerLengthUnit.PoundForceFootPerDegreesPerFoot), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -843,7 +851,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -855,7 +863,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -869,67 +877,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(RotationalStiffnessPerLength)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(RotationalStiffnessPerLength)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(RotationalStiffnessPerLength)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(RotationalStiffnessPerLength)) return this; @@ -943,17 +951,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(RotationalStiffnessPerLength)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Scalar.g.cs b/UnitsNet/GeneratedCode/Quantities/Scalar.g.cs index 3f68ad2192..349c9952d2 100644 --- a/UnitsNet/GeneratedCode/Quantities/Scalar.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Scalar.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -475,7 +476,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Scala /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Scalar otherQuantity)) return false; @@ -507,7 +508,7 @@ public bool Equals(Scalar other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Scalar otherQuantity)) throw new ArgumentException("Expected type Scalar.", nameof(obj)); @@ -677,7 +678,7 @@ public Scalar ToUnit(ScalarUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ScalarUnit unit, out Scalar? converted) + private bool TryToUnit(ScalarUnit unit, [NotNullWhen(true)] out Scalar? converted) { if (Unit == unit) { @@ -685,16 +686,23 @@ private bool TryToUnit(ScalarUnit unit, out Scalar? converted) return true; } - converted = (Unit, unit) switch + Scalar? convertedOrNull = (Unit, unit) switch { // ScalarUnit -> BaseUnit // BaseUnit -> ScalarUnit - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -759,7 +767,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -771,7 +779,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -785,67 +793,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Scalar)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Scalar)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Scalar)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Scalar)) return this; @@ -859,17 +867,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Scalar)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/SolidAngle.g.cs b/UnitsNet/GeneratedCode/Quantities/SolidAngle.g.cs index 7f79e74d36..2ce115befc 100644 --- a/UnitsNet/GeneratedCode/Quantities/SolidAngle.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/SolidAngle.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -478,7 +479,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Solid /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is SolidAngle otherQuantity)) return false; @@ -510,7 +511,7 @@ public bool Equals(SolidAngle other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is SolidAngle otherQuantity)) throw new ArgumentException("Expected type SolidAngle.", nameof(obj)); @@ -680,7 +681,7 @@ public SolidAngle ToUnit(SolidAngleUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(SolidAngleUnit unit, out SolidAngle? converted) + private bool TryToUnit(SolidAngleUnit unit, [NotNullWhen(true)] out SolidAngle? converted) { if (Unit == unit) { @@ -688,16 +689,23 @@ private bool TryToUnit(SolidAngleUnit unit, out SolidAngle? converted) return true; } - converted = (Unit, unit) switch + SolidAngle? convertedOrNull = (Unit, unit) switch { // SolidAngleUnit -> BaseUnit // BaseUnit -> SolidAngleUnit - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -762,7 +770,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -774,7 +782,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -788,67 +796,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(SolidAngle)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(SolidAngle)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(SolidAngle)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(SolidAngle)) return this; @@ -862,17 +870,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(SolidAngle)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/SpecificEnergy.g.cs b/UnitsNet/GeneratedCode/Quantities/SpecificEnergy.g.cs index b4490ff456..9f1b691194 100644 --- a/UnitsNet/GeneratedCode/Quantities/SpecificEnergy.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/SpecificEnergy.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -1010,7 +1011,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Speci /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is SpecificEnergy otherQuantity)) return false; @@ -1042,7 +1043,7 @@ public bool Equals(SpecificEnergy other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is SpecificEnergy otherQuantity)) throw new ArgumentException("Expected type SpecificEnergy.", nameof(obj)); @@ -1212,7 +1213,7 @@ public SpecificEnergy ToUnit(SpecificEnergyUnit unit, UnitConverter unitConverte /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(SpecificEnergyUnit unit, out SpecificEnergy? converted) + private bool TryToUnit(SpecificEnergyUnit unit, [NotNullWhen(true)] out SpecificEnergy? converted) { if (Unit == unit) { @@ -1220,7 +1221,7 @@ private bool TryToUnit(SpecificEnergyUnit unit, out SpecificEnergy? converted) return true; } - converted = (Unit, unit) switch + SpecificEnergy? convertedOrNull = (Unit, unit) switch { // SpecificEnergyUnit -> BaseUnit (SpecificEnergyUnit.BtuPerPound, SpecificEnergyUnit.JoulePerKilogram) => new SpecificEnergy(_value * 2326.000075362, SpecificEnergyUnit.JoulePerKilogram), @@ -1282,10 +1283,17 @@ private bool TryToUnit(SpecificEnergyUnit unit, out SpecificEnergy? converted) (SpecificEnergyUnit.JoulePerKilogram, SpecificEnergyUnit.WattHourPerKilogram) => new SpecificEnergy(_value / 3.6e3, SpecificEnergyUnit.WattHourPerKilogram), (SpecificEnergyUnit.JoulePerKilogram, SpecificEnergyUnit.WattHourPerPound) => new SpecificEnergy(_value / 7.93664e3, SpecificEnergyUnit.WattHourPerPound), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1350,7 +1358,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1362,7 +1370,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1376,67 +1384,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(SpecificEnergy)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(SpecificEnergy)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(SpecificEnergy)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(SpecificEnergy)) return this; @@ -1450,17 +1458,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(SpecificEnergy)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/SpecificEntropy.g.cs b/UnitsNet/GeneratedCode/Quantities/SpecificEntropy.g.cs index 8ee4ec4878..3f88dbc073 100644 --- a/UnitsNet/GeneratedCode/Quantities/SpecificEntropy.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/SpecificEntropy.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -627,7 +628,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Speci /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is SpecificEntropy otherQuantity)) return false; @@ -659,7 +660,7 @@ public bool Equals(SpecificEntropy other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is SpecificEntropy otherQuantity)) throw new ArgumentException("Expected type SpecificEntropy.", nameof(obj)); @@ -829,7 +830,7 @@ public SpecificEntropy ToUnit(SpecificEntropyUnit unit, UnitConverter unitConver /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(SpecificEntropyUnit unit, out SpecificEntropy? converted) + private bool TryToUnit(SpecificEntropyUnit unit, [NotNullWhen(true)] out SpecificEntropy? converted) { if (Unit == unit) { @@ -837,7 +838,7 @@ private bool TryToUnit(SpecificEntropyUnit unit, out SpecificEntropy? converted) return true; } - converted = (Unit, unit) switch + SpecificEntropy? convertedOrNull = (Unit, unit) switch { // SpecificEntropyUnit -> BaseUnit (SpecificEntropyUnit.BtuPerPoundFahrenheit, SpecificEntropyUnit.JoulePerKilogramKelvin) => new SpecificEntropy(_value * 4.1868e3, SpecificEntropyUnit.JoulePerKilogramKelvin), @@ -859,10 +860,17 @@ private bool TryToUnit(SpecificEntropyUnit unit, out SpecificEntropy? converted) (SpecificEntropyUnit.JoulePerKilogramKelvin, SpecificEntropyUnit.MegajoulePerKilogramDegreeCelsius) => new SpecificEntropy((_value) / 1e6d, SpecificEntropyUnit.MegajoulePerKilogramDegreeCelsius), (SpecificEntropyUnit.JoulePerKilogramKelvin, SpecificEntropyUnit.MegajoulePerKilogramKelvin) => new SpecificEntropy((_value) / 1e6d, SpecificEntropyUnit.MegajoulePerKilogramKelvin), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -927,7 +935,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -939,7 +947,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -953,67 +961,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(SpecificEntropy)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(SpecificEntropy)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(SpecificEntropy)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(SpecificEntropy)) return this; @@ -1027,17 +1035,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(SpecificEntropy)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/SpecificFuelConsumption.g.cs b/UnitsNet/GeneratedCode/Quantities/SpecificFuelConsumption.g.cs index a09c0cb448..d07b4d3e6a 100644 --- a/UnitsNet/GeneratedCode/Quantities/SpecificFuelConsumption.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/SpecificFuelConsumption.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -535,7 +536,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Speci /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is SpecificFuelConsumption otherQuantity)) return false; @@ -567,7 +568,7 @@ public bool Equals(SpecificFuelConsumption other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is SpecificFuelConsumption otherQuantity)) throw new ArgumentException("Expected type SpecificFuelConsumption.", nameof(obj)); @@ -737,7 +738,7 @@ public SpecificFuelConsumption ToUnit(SpecificFuelConsumptionUnit unit, UnitConv /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(SpecificFuelConsumptionUnit unit, out SpecificFuelConsumption? converted) + private bool TryToUnit(SpecificFuelConsumptionUnit unit, [NotNullWhen(true)] out SpecificFuelConsumption? converted) { if (Unit == unit) { @@ -745,7 +746,7 @@ private bool TryToUnit(SpecificFuelConsumptionUnit unit, out SpecificFuelConsump return true; } - converted = (Unit, unit) switch + SpecificFuelConsumption? convertedOrNull = (Unit, unit) switch { // SpecificFuelConsumptionUnit -> BaseUnit (SpecificFuelConsumptionUnit.KilogramPerKilogramForceHour, SpecificFuelConsumptionUnit.GramPerKiloNewtonSecond) => new SpecificFuelConsumption(_value * 28.33, SpecificFuelConsumptionUnit.GramPerKiloNewtonSecond), @@ -757,10 +758,17 @@ private bool TryToUnit(SpecificFuelConsumptionUnit unit, out SpecificFuelConsump (SpecificFuelConsumptionUnit.GramPerKiloNewtonSecond, SpecificFuelConsumptionUnit.KilogramPerKiloNewtonSecond) => new SpecificFuelConsumption((_value) / 1e3d, SpecificFuelConsumptionUnit.KilogramPerKiloNewtonSecond), (SpecificFuelConsumptionUnit.GramPerKiloNewtonSecond, SpecificFuelConsumptionUnit.PoundMassPerPoundForceHour) => new SpecificFuelConsumption(_value / 28.33, SpecificFuelConsumptionUnit.PoundMassPerPoundForceHour), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -825,7 +833,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -837,7 +845,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -851,67 +859,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(SpecificFuelConsumption)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(SpecificFuelConsumption)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(SpecificFuelConsumption)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(SpecificFuelConsumption)) return this; @@ -925,17 +933,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(SpecificFuelConsumption)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/SpecificVolume.g.cs b/UnitsNet/GeneratedCode/Quantities/SpecificVolume.g.cs index a26a6f0053..207b1dd134 100644 --- a/UnitsNet/GeneratedCode/Quantities/SpecificVolume.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/SpecificVolume.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -513,7 +514,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Speci /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is SpecificVolume otherQuantity)) return false; @@ -545,7 +546,7 @@ public bool Equals(SpecificVolume other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is SpecificVolume otherQuantity)) throw new ArgumentException("Expected type SpecificVolume.", nameof(obj)); @@ -715,7 +716,7 @@ public SpecificVolume ToUnit(SpecificVolumeUnit unit, UnitConverter unitConverte /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(SpecificVolumeUnit unit, out SpecificVolume? converted) + private bool TryToUnit(SpecificVolumeUnit unit, [NotNullWhen(true)] out SpecificVolume? converted) { if (Unit == unit) { @@ -723,7 +724,7 @@ private bool TryToUnit(SpecificVolumeUnit unit, out SpecificVolume? converted) return true; } - converted = (Unit, unit) switch + SpecificVolume? convertedOrNull = (Unit, unit) switch { // SpecificVolumeUnit -> BaseUnit (SpecificVolumeUnit.CubicFootPerPound, SpecificVolumeUnit.CubicMeterPerKilogram) => new SpecificVolume(_value / 16.01846353, SpecificVolumeUnit.CubicMeterPerKilogram), @@ -733,10 +734,17 @@ private bool TryToUnit(SpecificVolumeUnit unit, out SpecificVolume? converted) (SpecificVolumeUnit.CubicMeterPerKilogram, SpecificVolumeUnit.CubicFootPerPound) => new SpecificVolume(_value * 16.01846353, SpecificVolumeUnit.CubicFootPerPound), (SpecificVolumeUnit.CubicMeterPerKilogram, SpecificVolumeUnit.MillicubicMeterPerKilogram) => new SpecificVolume((_value) / 1e-3d, SpecificVolumeUnit.MillicubicMeterPerKilogram), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -801,7 +809,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -813,7 +821,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -827,67 +835,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(SpecificVolume)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(SpecificVolume)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(SpecificVolume)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(SpecificVolume)) return this; @@ -901,17 +909,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(SpecificVolume)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/SpecificWeight.g.cs b/UnitsNet/GeneratedCode/Quantities/SpecificWeight.g.cs index 86dfa0850f..e1055b5b03 100644 --- a/UnitsNet/GeneratedCode/Quantities/SpecificWeight.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/SpecificWeight.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -782,7 +783,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Speci /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is SpecificWeight otherQuantity)) return false; @@ -814,7 +815,7 @@ public bool Equals(SpecificWeight other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is SpecificWeight otherQuantity)) throw new ArgumentException("Expected type SpecificWeight.", nameof(obj)); @@ -984,7 +985,7 @@ public SpecificWeight ToUnit(SpecificWeightUnit unit, UnitConverter unitConverte /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(SpecificWeightUnit unit, out SpecificWeight? converted) + private bool TryToUnit(SpecificWeightUnit unit, [NotNullWhen(true)] out SpecificWeight? converted) { if (Unit == unit) { @@ -992,7 +993,7 @@ private bool TryToUnit(SpecificWeightUnit unit, out SpecificWeight? converted) return true; } - converted = (Unit, unit) switch + SpecificWeight? convertedOrNull = (Unit, unit) switch { // SpecificWeightUnit -> BaseUnit (SpecificWeightUnit.KilogramForcePerCubicCentimeter, SpecificWeightUnit.NewtonPerCubicMeter) => new SpecificWeight(_value * 9.80665e6, SpecificWeightUnit.NewtonPerCubicMeter), @@ -1030,10 +1031,17 @@ private bool TryToUnit(SpecificWeightUnit unit, out SpecificWeight? converted) (SpecificWeightUnit.NewtonPerCubicMeter, SpecificWeightUnit.TonneForcePerCubicMeter) => new SpecificWeight(_value / 9.80665e3, SpecificWeightUnit.TonneForcePerCubicMeter), (SpecificWeightUnit.NewtonPerCubicMeter, SpecificWeightUnit.TonneForcePerCubicMillimeter) => new SpecificWeight(_value / 9.80665e12, SpecificWeightUnit.TonneForcePerCubicMillimeter), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1098,7 +1106,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1110,7 +1118,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1124,67 +1132,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(SpecificWeight)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(SpecificWeight)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(SpecificWeight)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(SpecificWeight)) return this; @@ -1198,17 +1206,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(SpecificWeight)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Speed.g.cs b/UnitsNet/GeneratedCode/Quantities/Speed.g.cs index c06f28de9e..9c379a903b 100644 --- a/UnitsNet/GeneratedCode/Quantities/Speed.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Speed.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -1107,7 +1108,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Speed /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Speed otherQuantity)) return false; @@ -1139,7 +1140,7 @@ public bool Equals(Speed other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Speed otherQuantity)) throw new ArgumentException("Expected type Speed.", nameof(obj)); @@ -1309,7 +1310,7 @@ public Speed ToUnit(SpeedUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(SpeedUnit unit, out Speed? converted) + private bool TryToUnit(SpeedUnit unit, [NotNullWhen(true)] out Speed? converted) { if (Unit == unit) { @@ -1317,7 +1318,7 @@ private bool TryToUnit(SpeedUnit unit, out Speed? converted) return true; } - converted = (Unit, unit) switch + Speed? convertedOrNull = (Unit, unit) switch { // SpeedUnit -> BaseUnit (SpeedUnit.CentimeterPerHour, SpeedUnit.MeterPerSecond) => new Speed((_value / 3600) * 1e-2d, SpeedUnit.MeterPerSecond), @@ -1387,10 +1388,17 @@ private bool TryToUnit(SpeedUnit unit, out Speed? converted) (SpeedUnit.MeterPerSecond, SpeedUnit.YardPerMinute) => new Speed(_value / 0.9144 * 60, SpeedUnit.YardPerMinute), (SpeedUnit.MeterPerSecond, SpeedUnit.YardPerSecond) => new Speed(_value / 0.9144, SpeedUnit.YardPerSecond), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1455,7 +1463,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1467,7 +1475,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1481,67 +1489,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Speed)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Speed)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Speed)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Speed)) return this; @@ -1555,17 +1563,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Speed)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/StandardVolumeFlow.g.cs b/UnitsNet/GeneratedCode/Quantities/StandardVolumeFlow.g.cs index a17f6b7d03..7c08150d81 100644 --- a/UnitsNet/GeneratedCode/Quantities/StandardVolumeFlow.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/StandardVolumeFlow.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -627,7 +628,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Stand /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is StandardVolumeFlow otherQuantity)) return false; @@ -659,7 +660,7 @@ public bool Equals(StandardVolumeFlow other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is StandardVolumeFlow otherQuantity)) throw new ArgumentException("Expected type StandardVolumeFlow.", nameof(obj)); @@ -829,7 +830,7 @@ public StandardVolumeFlow ToUnit(StandardVolumeFlowUnit unit, UnitConverter unit /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(StandardVolumeFlowUnit unit, out StandardVolumeFlow? converted) + private bool TryToUnit(StandardVolumeFlowUnit unit, [NotNullWhen(true)] out StandardVolumeFlow? converted) { if (Unit == unit) { @@ -837,7 +838,7 @@ private bool TryToUnit(StandardVolumeFlowUnit unit, out StandardVolumeFlow? conv return true; } - converted = (Unit, unit) switch + StandardVolumeFlow? convertedOrNull = (Unit, unit) switch { // StandardVolumeFlowUnit -> BaseUnit (StandardVolumeFlowUnit.StandardCubicCentimeterPerMinute, StandardVolumeFlowUnit.StandardCubicMeterPerSecond) => new StandardVolumeFlow(_value / 6e7, StandardVolumeFlowUnit.StandardCubicMeterPerSecond), @@ -859,10 +860,17 @@ private bool TryToUnit(StandardVolumeFlowUnit unit, out StandardVolumeFlow? conv (StandardVolumeFlowUnit.StandardCubicMeterPerSecond, StandardVolumeFlowUnit.StandardCubicMeterPerMinute) => new StandardVolumeFlow(_value * 60, StandardVolumeFlowUnit.StandardCubicMeterPerMinute), (StandardVolumeFlowUnit.StandardCubicMeterPerSecond, StandardVolumeFlowUnit.StandardLiterPerMinute) => new StandardVolumeFlow(_value * 60000, StandardVolumeFlowUnit.StandardLiterPerMinute), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -927,7 +935,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -939,7 +947,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -953,67 +961,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(StandardVolumeFlow)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(StandardVolumeFlow)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(StandardVolumeFlow)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(StandardVolumeFlow)) return this; @@ -1027,17 +1035,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(StandardVolumeFlow)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Temperature.g.cs b/UnitsNet/GeneratedCode/Quantities/Temperature.g.cs index 20175c551d..64a4a4a6da 100644 --- a/UnitsNet/GeneratedCode/Quantities/Temperature.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Temperature.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -600,7 +601,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Tempe /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Temperature otherQuantity)) return false; @@ -632,7 +633,7 @@ public bool Equals(Temperature other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Temperature otherQuantity)) throw new ArgumentException("Expected type Temperature.", nameof(obj)); @@ -802,7 +803,7 @@ public Temperature ToUnit(TemperatureUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(TemperatureUnit unit, out Temperature? converted) + private bool TryToUnit(TemperatureUnit unit, [NotNullWhen(true)] out Temperature? converted) { if (Unit == unit) { @@ -810,7 +811,7 @@ private bool TryToUnit(TemperatureUnit unit, out Temperature? converted) return true; } - converted = (Unit, unit) switch + Temperature? convertedOrNull = (Unit, unit) switch { // TemperatureUnit -> BaseUnit (TemperatureUnit.DegreeCelsius, TemperatureUnit.Kelvin) => new Temperature(_value + 273.15, TemperatureUnit.Kelvin), @@ -834,10 +835,17 @@ private bool TryToUnit(TemperatureUnit unit, out Temperature? converted) (TemperatureUnit.Kelvin, TemperatureUnit.MillidegreeCelsius) => new Temperature((_value - 273.15) * 1000, TemperatureUnit.MillidegreeCelsius), (TemperatureUnit.Kelvin, TemperatureUnit.SolarTemperature) => new Temperature(_value / 5778, TemperatureUnit.SolarTemperature), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -902,7 +910,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -914,7 +922,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -928,67 +936,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Temperature)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Temperature)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Temperature)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Temperature)) return this; @@ -1002,17 +1010,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Temperature)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/TemperatureChangeRate.g.cs b/UnitsNet/GeneratedCode/Quantities/TemperatureChangeRate.g.cs index 1f90689eeb..467b06820e 100644 --- a/UnitsNet/GeneratedCode/Quantities/TemperatureChangeRate.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/TemperatureChangeRate.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -646,7 +647,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Tempe /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is TemperatureChangeRate otherQuantity)) return false; @@ -678,7 +679,7 @@ public bool Equals(TemperatureChangeRate other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is TemperatureChangeRate otherQuantity)) throw new ArgumentException("Expected type TemperatureChangeRate.", nameof(obj)); @@ -848,7 +849,7 @@ public TemperatureChangeRate ToUnit(TemperatureChangeRateUnit unit, UnitConverte /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(TemperatureChangeRateUnit unit, out TemperatureChangeRate? converted) + private bool TryToUnit(TemperatureChangeRateUnit unit, [NotNullWhen(true)] out TemperatureChangeRate? converted) { if (Unit == unit) { @@ -856,7 +857,7 @@ private bool TryToUnit(TemperatureChangeRateUnit unit, out TemperatureChangeRate return true; } - converted = (Unit, unit) switch + TemperatureChangeRate? convertedOrNull = (Unit, unit) switch { // TemperatureChangeRateUnit -> BaseUnit (TemperatureChangeRateUnit.CentidegreeCelsiusPerSecond, TemperatureChangeRateUnit.DegreeCelsiusPerSecond) => new TemperatureChangeRate((_value) * 1e-2d, TemperatureChangeRateUnit.DegreeCelsiusPerSecond), @@ -880,10 +881,17 @@ private bool TryToUnit(TemperatureChangeRateUnit unit, out TemperatureChangeRate (TemperatureChangeRateUnit.DegreeCelsiusPerSecond, TemperatureChangeRateUnit.MillidegreeCelsiusPerSecond) => new TemperatureChangeRate((_value) / 1e-3d, TemperatureChangeRateUnit.MillidegreeCelsiusPerSecond), (TemperatureChangeRateUnit.DegreeCelsiusPerSecond, TemperatureChangeRateUnit.NanodegreeCelsiusPerSecond) => new TemperatureChangeRate((_value) / 1e-9d, TemperatureChangeRateUnit.NanodegreeCelsiusPerSecond), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -948,7 +956,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -960,7 +968,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -974,67 +982,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(TemperatureChangeRate)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(TemperatureChangeRate)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(TemperatureChangeRate)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(TemperatureChangeRate)) return this; @@ -1048,17 +1056,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(TemperatureChangeRate)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/TemperatureDelta.g.cs b/UnitsNet/GeneratedCode/Quantities/TemperatureDelta.g.cs index 60086ffe05..ab4620892c 100644 --- a/UnitsNet/GeneratedCode/Quantities/TemperatureDelta.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/TemperatureDelta.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -627,7 +628,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Tempe /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is TemperatureDelta otherQuantity)) return false; @@ -659,7 +660,7 @@ public bool Equals(TemperatureDelta other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is TemperatureDelta otherQuantity)) throw new ArgumentException("Expected type TemperatureDelta.", nameof(obj)); @@ -829,7 +830,7 @@ public TemperatureDelta ToUnit(TemperatureDeltaUnit unit, UnitConverter unitConv /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(TemperatureDeltaUnit unit, out TemperatureDelta? converted) + private bool TryToUnit(TemperatureDeltaUnit unit, [NotNullWhen(true)] out TemperatureDelta? converted) { if (Unit == unit) { @@ -837,7 +838,7 @@ private bool TryToUnit(TemperatureDeltaUnit unit, out TemperatureDelta? converte return true; } - converted = (Unit, unit) switch + TemperatureDelta? convertedOrNull = (Unit, unit) switch { // TemperatureDeltaUnit -> BaseUnit (TemperatureDeltaUnit.DegreeCelsius, TemperatureDeltaUnit.Kelvin) => new TemperatureDelta(_value, TemperatureDeltaUnit.Kelvin), @@ -859,10 +860,17 @@ private bool TryToUnit(TemperatureDeltaUnit unit, out TemperatureDelta? converte (TemperatureDeltaUnit.Kelvin, TemperatureDeltaUnit.DegreeRoemer) => new TemperatureDelta(_value * 21 / 40, TemperatureDeltaUnit.DegreeRoemer), (TemperatureDeltaUnit.Kelvin, TemperatureDeltaUnit.MillidegreeCelsius) => new TemperatureDelta((_value) / 1e-3d, TemperatureDeltaUnit.MillidegreeCelsius), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -927,7 +935,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -939,7 +947,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -953,67 +961,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(TemperatureDelta)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(TemperatureDelta)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(TemperatureDelta)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(TemperatureDelta)) return this; @@ -1027,17 +1035,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(TemperatureDelta)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/TemperatureGradient.g.cs b/UnitsNet/GeneratedCode/Quantities/TemperatureGradient.g.cs index 1fe916a88f..97dab6c719 100644 --- a/UnitsNet/GeneratedCode/Quantities/TemperatureGradient.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/TemperatureGradient.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -532,7 +533,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Tempe /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is TemperatureGradient otherQuantity)) return false; @@ -564,7 +565,7 @@ public bool Equals(TemperatureGradient other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is TemperatureGradient otherQuantity)) throw new ArgumentException("Expected type TemperatureGradient.", nameof(obj)); @@ -734,7 +735,7 @@ public TemperatureGradient ToUnit(TemperatureGradientUnit unit, UnitConverter un /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(TemperatureGradientUnit unit, out TemperatureGradient? converted) + private bool TryToUnit(TemperatureGradientUnit unit, [NotNullWhen(true)] out TemperatureGradient? converted) { if (Unit == unit) { @@ -742,7 +743,7 @@ private bool TryToUnit(TemperatureGradientUnit unit, out TemperatureGradient? co return true; } - converted = (Unit, unit) switch + TemperatureGradient? convertedOrNull = (Unit, unit) switch { // TemperatureGradientUnit -> BaseUnit (TemperatureGradientUnit.DegreeCelsiusPerKilometer, TemperatureGradientUnit.KelvinPerMeter) => new TemperatureGradient(_value / 1e3, TemperatureGradientUnit.KelvinPerMeter), @@ -754,10 +755,17 @@ private bool TryToUnit(TemperatureGradientUnit unit, out TemperatureGradient? co (TemperatureGradientUnit.KelvinPerMeter, TemperatureGradientUnit.DegreeCelsiusPerMeter) => new TemperatureGradient(_value, TemperatureGradientUnit.DegreeCelsiusPerMeter), (TemperatureGradientUnit.KelvinPerMeter, TemperatureGradientUnit.DegreeFahrenheitPerFoot) => new TemperatureGradient((_value * 0.3048) * 9 / 5, TemperatureGradientUnit.DegreeFahrenheitPerFoot), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -822,7 +830,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -834,7 +842,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -848,67 +856,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(TemperatureGradient)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(TemperatureGradient)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(TemperatureGradient)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(TemperatureGradient)) return this; @@ -922,17 +930,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(TemperatureGradient)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ThermalConductivity.g.cs b/UnitsNet/GeneratedCode/Quantities/ThermalConductivity.g.cs index 0df1d8b6e3..088093dc4c 100644 --- a/UnitsNet/GeneratedCode/Quantities/ThermalConductivity.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ThermalConductivity.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -497,7 +498,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Therm /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ThermalConductivity otherQuantity)) return false; @@ -529,7 +530,7 @@ public bool Equals(ThermalConductivity other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ThermalConductivity otherQuantity)) throw new ArgumentException("Expected type ThermalConductivity.", nameof(obj)); @@ -699,7 +700,7 @@ public ThermalConductivity ToUnit(ThermalConductivityUnit unit, UnitConverter un /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ThermalConductivityUnit unit, out ThermalConductivity? converted) + private bool TryToUnit(ThermalConductivityUnit unit, [NotNullWhen(true)] out ThermalConductivity? converted) { if (Unit == unit) { @@ -707,7 +708,7 @@ private bool TryToUnit(ThermalConductivityUnit unit, out ThermalConductivity? co return true; } - converted = (Unit, unit) switch + ThermalConductivity? convertedOrNull = (Unit, unit) switch { // ThermalConductivityUnit -> BaseUnit (ThermalConductivityUnit.BtuPerHourFootFahrenheit, ThermalConductivityUnit.WattPerMeterKelvin) => new ThermalConductivity(_value * 1.73073467, ThermalConductivityUnit.WattPerMeterKelvin), @@ -715,10 +716,17 @@ private bool TryToUnit(ThermalConductivityUnit unit, out ThermalConductivity? co // BaseUnit -> ThermalConductivityUnit (ThermalConductivityUnit.WattPerMeterKelvin, ThermalConductivityUnit.BtuPerHourFootFahrenheit) => new ThermalConductivity(_value / 1.73073467, ThermalConductivityUnit.BtuPerHourFootFahrenheit), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -783,7 +791,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -795,7 +803,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -809,67 +817,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ThermalConductivity)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ThermalConductivity)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ThermalConductivity)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ThermalConductivity)) return this; @@ -883,17 +891,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ThermalConductivity)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/ThermalResistance.g.cs b/UnitsNet/GeneratedCode/Quantities/ThermalResistance.g.cs index 3608e5da19..e5d9980ca6 100644 --- a/UnitsNet/GeneratedCode/Quantities/ThermalResistance.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/ThermalResistance.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -570,7 +571,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Therm /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is ThermalResistance otherQuantity)) return false; @@ -602,7 +603,7 @@ public bool Equals(ThermalResistance other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is ThermalResistance otherQuantity)) throw new ArgumentException("Expected type ThermalResistance.", nameof(obj)); @@ -772,7 +773,7 @@ public ThermalResistance ToUnit(ThermalResistanceUnit unit, UnitConverter unitCo /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(ThermalResistanceUnit unit, out ThermalResistance? converted) + private bool TryToUnit(ThermalResistanceUnit unit, [NotNullWhen(true)] out ThermalResistance? converted) { if (Unit == unit) { @@ -780,7 +781,7 @@ private bool TryToUnit(ThermalResistanceUnit unit, out ThermalResistance? conver return true; } - converted = (Unit, unit) switch + ThermalResistance? convertedOrNull = (Unit, unit) switch { // ThermalResistanceUnit -> BaseUnit (ThermalResistanceUnit.HourSquareFeetDegreeFahrenheitPerBtu, ThermalResistanceUnit.SquareMeterKelvinPerKilowatt) => new ThermalResistance(_value * 176.1121482159839, ThermalResistanceUnit.SquareMeterKelvinPerKilowatt), @@ -796,10 +797,17 @@ private bool TryToUnit(ThermalResistanceUnit unit, out ThermalResistance? conver (ThermalResistanceUnit.SquareMeterKelvinPerKilowatt, ThermalResistanceUnit.SquareMeterDegreeCelsiusPerWatt) => new ThermalResistance(_value / 1000.0, ThermalResistanceUnit.SquareMeterDegreeCelsiusPerWatt), (ThermalResistanceUnit.SquareMeterKelvinPerKilowatt, ThermalResistanceUnit.SquareMeterKelvinPerWatt) => new ThermalResistance(_value / 1000, ThermalResistanceUnit.SquareMeterKelvinPerWatt), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -864,7 +872,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -876,7 +884,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -890,67 +898,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ThermalResistance)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ThermalResistance)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(ThermalResistance)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(ThermalResistance)) return this; @@ -964,17 +972,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(ThermalResistance)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Torque.g.cs b/UnitsNet/GeneratedCode/Quantities/Torque.g.cs index 64c4b1a46e..4c3c469fb2 100644 --- a/UnitsNet/GeneratedCode/Quantities/Torque.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Torque.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -934,7 +935,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Torqu /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Torque otherQuantity)) return false; @@ -966,7 +967,7 @@ public bool Equals(Torque other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Torque otherQuantity)) throw new ArgumentException("Expected type Torque.", nameof(obj)); @@ -1136,7 +1137,7 @@ public Torque ToUnit(TorqueUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(TorqueUnit unit, out Torque? converted) + private bool TryToUnit(TorqueUnit unit, [NotNullWhen(true)] out Torque? converted) { if (Unit == unit) { @@ -1144,7 +1145,7 @@ private bool TryToUnit(TorqueUnit unit, out Torque? converted) return true; } - converted = (Unit, unit) switch + Torque? convertedOrNull = (Unit, unit) switch { // TorqueUnit -> BaseUnit (TorqueUnit.GramForceCentimeter, TorqueUnit.NewtonMeter) => new Torque(_value * 9.80665e-5, TorqueUnit.NewtonMeter), @@ -1198,10 +1199,17 @@ private bool TryToUnit(TorqueUnit unit, out Torque? converted) (TorqueUnit.NewtonMeter, TorqueUnit.TonneForceMeter) => new Torque(_value / 9.80665e3, TorqueUnit.TonneForceMeter), (TorqueUnit.NewtonMeter, TorqueUnit.TonneForceMillimeter) => new Torque(_value / 9.80665, TorqueUnit.TonneForceMillimeter), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1266,7 +1274,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1278,7 +1286,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1292,67 +1300,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Torque)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Torque)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Torque)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Torque)) return this; @@ -1366,17 +1374,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Torque)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/TorquePerLength.g.cs b/UnitsNet/GeneratedCode/Quantities/TorquePerLength.g.cs index 3d5fb80f21..bc6cc4b4e9 100644 --- a/UnitsNet/GeneratedCode/Quantities/TorquePerLength.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/TorquePerLength.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -858,7 +859,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Torqu /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is TorquePerLength otherQuantity)) return false; @@ -890,7 +891,7 @@ public bool Equals(TorquePerLength other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is TorquePerLength otherQuantity)) throw new ArgumentException("Expected type TorquePerLength.", nameof(obj)); @@ -1060,7 +1061,7 @@ public TorquePerLength ToUnit(TorquePerLengthUnit unit, UnitConverter unitConver /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(TorquePerLengthUnit unit, out TorquePerLength? converted) + private bool TryToUnit(TorquePerLengthUnit unit, [NotNullWhen(true)] out TorquePerLength? converted) { if (Unit == unit) { @@ -1068,7 +1069,7 @@ private bool TryToUnit(TorquePerLengthUnit unit, out TorquePerLength? converted) return true; } - converted = (Unit, unit) switch + TorquePerLength? convertedOrNull = (Unit, unit) switch { // TorquePerLengthUnit -> BaseUnit (TorquePerLengthUnit.KilogramForceCentimeterPerMeter, TorquePerLengthUnit.NewtonMeterPerMeter) => new TorquePerLength(_value * 0.0980665019960652, TorquePerLengthUnit.NewtonMeterPerMeter), @@ -1114,10 +1115,17 @@ private bool TryToUnit(TorquePerLengthUnit unit, out TorquePerLength? converted) (TorquePerLengthUnit.NewtonMeterPerMeter, TorquePerLengthUnit.TonneForceMeterPerMeter) => new TorquePerLength(_value * 0.000101971619222242, TorquePerLengthUnit.TonneForceMeterPerMeter), (TorquePerLengthUnit.NewtonMeterPerMeter, TorquePerLengthUnit.TonneForceMillimeterPerMeter) => new TorquePerLength(_value * 0.101971619222242, TorquePerLengthUnit.TonneForceMillimeterPerMeter), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1182,7 +1190,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1194,7 +1202,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1208,67 +1216,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(TorquePerLength)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(TorquePerLength)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(TorquePerLength)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(TorquePerLength)) return this; @@ -1282,17 +1290,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(TorquePerLength)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Turbidity.g.cs b/UnitsNet/GeneratedCode/Quantities/Turbidity.g.cs index 3203e2e106..886123b7a3 100644 --- a/UnitsNet/GeneratedCode/Quantities/Turbidity.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Turbidity.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -478,7 +479,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Turbi /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Turbidity otherQuantity)) return false; @@ -510,7 +511,7 @@ public bool Equals(Turbidity other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Turbidity otherQuantity)) throw new ArgumentException("Expected type Turbidity.", nameof(obj)); @@ -680,7 +681,7 @@ public Turbidity ToUnit(TurbidityUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(TurbidityUnit unit, out Turbidity? converted) + private bool TryToUnit(TurbidityUnit unit, [NotNullWhen(true)] out Turbidity? converted) { if (Unit == unit) { @@ -688,16 +689,23 @@ private bool TryToUnit(TurbidityUnit unit, out Turbidity? converted) return true; } - converted = (Unit, unit) switch + Turbidity? convertedOrNull = (Unit, unit) switch { // TurbidityUnit -> BaseUnit // BaseUnit -> TurbidityUnit - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -762,7 +770,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -774,7 +782,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -788,67 +796,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Turbidity)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Turbidity)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Turbidity)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Turbidity)) return this; @@ -862,17 +870,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Turbidity)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/VitaminA.g.cs b/UnitsNet/GeneratedCode/Quantities/VitaminA.g.cs index 103c60e4ca..28b41203b7 100644 --- a/UnitsNet/GeneratedCode/Quantities/VitaminA.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/VitaminA.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -475,7 +476,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Vitam /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is VitaminA otherQuantity)) return false; @@ -507,7 +508,7 @@ public bool Equals(VitaminA other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is VitaminA otherQuantity)) throw new ArgumentException("Expected type VitaminA.", nameof(obj)); @@ -677,7 +678,7 @@ public VitaminA ToUnit(VitaminAUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(VitaminAUnit unit, out VitaminA? converted) + private bool TryToUnit(VitaminAUnit unit, [NotNullWhen(true)] out VitaminA? converted) { if (Unit == unit) { @@ -685,16 +686,23 @@ private bool TryToUnit(VitaminAUnit unit, out VitaminA? converted) return true; } - converted = (Unit, unit) switch + VitaminA? convertedOrNull = (Unit, unit) switch { // VitaminAUnit -> BaseUnit // BaseUnit -> VitaminAUnit - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -759,7 +767,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -771,7 +779,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -785,67 +793,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(VitaminA)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(VitaminA)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(VitaminA)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(VitaminA)) return this; @@ -859,17 +867,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(VitaminA)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/Volume.g.cs b/UnitsNet/GeneratedCode/Quantities/Volume.g.cs index 56851774c0..f13e583707 100644 --- a/UnitsNet/GeneratedCode/Quantities/Volume.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Volume.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -1511,7 +1512,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Volum /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is Volume otherQuantity)) return false; @@ -1543,7 +1544,7 @@ public bool Equals(Volume other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is Volume otherQuantity)) throw new ArgumentException("Expected type Volume.", nameof(obj)); @@ -1713,7 +1714,7 @@ public Volume ToUnit(VolumeUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(VolumeUnit unit, out Volume? converted) + private bool TryToUnit(VolumeUnit unit, [NotNullWhen(true)] out Volume? converted) { if (Unit == unit) { @@ -1721,7 +1722,7 @@ private bool TryToUnit(VolumeUnit unit, out Volume? converted) return true; } - converted = (Unit, unit) switch + Volume? convertedOrNull = (Unit, unit) switch { // VolumeUnit -> BaseUnit (VolumeUnit.AcreFoot, VolumeUnit.CubicMeter) => new Volume(_value / 0.000810714, VolumeUnit.CubicMeter), @@ -1831,10 +1832,17 @@ private bool TryToUnit(VolumeUnit unit, out Volume? converted) (VolumeUnit.CubicMeter, VolumeUnit.UsTablespoon) => new Volume(_value / 1.478676478125e-5, VolumeUnit.UsTablespoon), (VolumeUnit.CubicMeter, VolumeUnit.UsTeaspoon) => new Volume(_value / 4.92892159375e-6, VolumeUnit.UsTeaspoon), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1899,7 +1907,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1911,7 +1919,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1925,67 +1933,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Volume)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Volume)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(Volume)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(Volume)) return this; @@ -1999,17 +2007,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(Volume)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/VolumeConcentration.g.cs b/UnitsNet/GeneratedCode/Quantities/VolumeConcentration.g.cs index b336293255..0f19a52ce8 100644 --- a/UnitsNet/GeneratedCode/Quantities/VolumeConcentration.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/VolumeConcentration.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -839,7 +840,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Volum /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is VolumeConcentration otherQuantity)) return false; @@ -871,7 +872,7 @@ public bool Equals(VolumeConcentration other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is VolumeConcentration otherQuantity)) throw new ArgumentException("Expected type VolumeConcentration.", nameof(obj)); @@ -1041,7 +1042,7 @@ public VolumeConcentration ToUnit(VolumeConcentrationUnit unit, UnitConverter un /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(VolumeConcentrationUnit unit, out VolumeConcentration? converted) + private bool TryToUnit(VolumeConcentrationUnit unit, [NotNullWhen(true)] out VolumeConcentration? converted) { if (Unit == unit) { @@ -1049,7 +1050,7 @@ private bool TryToUnit(VolumeConcentrationUnit unit, out VolumeConcentration? co return true; } - converted = (Unit, unit) switch + VolumeConcentration? convertedOrNull = (Unit, unit) switch { // VolumeConcentrationUnit -> BaseUnit (VolumeConcentrationUnit.CentilitersPerLiter, VolumeConcentrationUnit.DecimalFraction) => new VolumeConcentration((_value) * 1e-2d, VolumeConcentrationUnit.DecimalFraction), @@ -1093,10 +1094,17 @@ private bool TryToUnit(VolumeConcentrationUnit unit, out VolumeConcentration? co (VolumeConcentrationUnit.DecimalFraction, VolumeConcentrationUnit.PicolitersPerLiter) => new VolumeConcentration((_value) / 1e-12d, VolumeConcentrationUnit.PicolitersPerLiter), (VolumeConcentrationUnit.DecimalFraction, VolumeConcentrationUnit.PicolitersPerMililiter) => new VolumeConcentration((_value * 1e-3) / 1e-12d, VolumeConcentrationUnit.PicolitersPerMililiter), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -1161,7 +1169,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -1173,7 +1181,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -1187,67 +1195,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(VolumeConcentration)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(VolumeConcentration)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(VolumeConcentration)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(VolumeConcentration)) return this; @@ -1261,17 +1269,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(VolumeConcentration)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/VolumeFlow.g.cs b/UnitsNet/GeneratedCode/Quantities/VolumeFlow.g.cs index 42c389d36e..3f6808da24 100644 --- a/UnitsNet/GeneratedCode/Quantities/VolumeFlow.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/VolumeFlow.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -1661,7 +1662,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Volum /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is VolumeFlow otherQuantity)) return false; @@ -1693,7 +1694,7 @@ public bool Equals(VolumeFlow other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is VolumeFlow otherQuantity)) throw new ArgumentException("Expected type VolumeFlow.", nameof(obj)); @@ -1863,7 +1864,7 @@ public VolumeFlow ToUnit(VolumeFlowUnit unit, UnitConverter unitConverter) /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(VolumeFlowUnit unit, out VolumeFlow? converted) + private bool TryToUnit(VolumeFlowUnit unit, [NotNullWhen(true)] out VolumeFlow? converted) { if (Unit == unit) { @@ -1871,7 +1872,7 @@ private bool TryToUnit(VolumeFlowUnit unit, out VolumeFlow? converted) return true; } - converted = (Unit, unit) switch + VolumeFlow? convertedOrNull = (Unit, unit) switch { // VolumeFlowUnit -> BaseUnit (VolumeFlowUnit.AcreFootPerDay, VolumeFlowUnit.CubicMeterPerSecond) => new VolumeFlow(_value / 70.0457, VolumeFlowUnit.CubicMeterPerSecond), @@ -1999,10 +2000,17 @@ private bool TryToUnit(VolumeFlowUnit unit, out VolumeFlow? converted) (VolumeFlowUnit.CubicMeterPerSecond, VolumeFlowUnit.UsGallonPerMinute) => new VolumeFlow(_value * 15850.323141489, VolumeFlowUnit.UsGallonPerMinute), (VolumeFlowUnit.CubicMeterPerSecond, VolumeFlowUnit.UsGallonPerSecond) => new VolumeFlow(_value * 264.1720523581484, VolumeFlowUnit.UsGallonPerSecond), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -2067,7 +2075,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -2079,7 +2087,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -2093,67 +2101,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(VolumeFlow)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(VolumeFlow)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(VolumeFlow)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(VolumeFlow)) return this; @@ -2167,17 +2175,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(VolumeFlow)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/VolumeFlowPerArea.g.cs b/UnitsNet/GeneratedCode/Quantities/VolumeFlowPerArea.g.cs index b0acba6eca..2f016e210d 100644 --- a/UnitsNet/GeneratedCode/Quantities/VolumeFlowPerArea.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/VolumeFlowPerArea.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -494,7 +495,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Volum /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is VolumeFlowPerArea otherQuantity)) return false; @@ -526,7 +527,7 @@ public bool Equals(VolumeFlowPerArea other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is VolumeFlowPerArea otherQuantity)) throw new ArgumentException("Expected type VolumeFlowPerArea.", nameof(obj)); @@ -696,7 +697,7 @@ public VolumeFlowPerArea ToUnit(VolumeFlowPerAreaUnit unit, UnitConverter unitCo /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(VolumeFlowPerAreaUnit unit, out VolumeFlowPerArea? converted) + private bool TryToUnit(VolumeFlowPerAreaUnit unit, [NotNullWhen(true)] out VolumeFlowPerArea? converted) { if (Unit == unit) { @@ -704,7 +705,7 @@ private bool TryToUnit(VolumeFlowPerAreaUnit unit, out VolumeFlowPerArea? conver return true; } - converted = (Unit, unit) switch + VolumeFlowPerArea? convertedOrNull = (Unit, unit) switch { // VolumeFlowPerAreaUnit -> BaseUnit (VolumeFlowPerAreaUnit.CubicFootPerMinutePerSquareFoot, VolumeFlowPerAreaUnit.CubicMeterPerSecondPerSquareMeter) => new VolumeFlowPerArea(_value / 196.850394, VolumeFlowPerAreaUnit.CubicMeterPerSecondPerSquareMeter), @@ -712,10 +713,17 @@ private bool TryToUnit(VolumeFlowPerAreaUnit unit, out VolumeFlowPerArea? conver // BaseUnit -> VolumeFlowPerAreaUnit (VolumeFlowPerAreaUnit.CubicMeterPerSecondPerSquareMeter, VolumeFlowPerAreaUnit.CubicFootPerMinutePerSquareFoot) => new VolumeFlowPerArea(_value * 196.850394, VolumeFlowPerAreaUnit.CubicFootPerMinutePerSquareFoot), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -780,7 +788,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -792,7 +800,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -806,67 +814,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(VolumeFlowPerArea)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(VolumeFlowPerArea)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(VolumeFlowPerArea)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(VolumeFlowPerArea)) return this; @@ -880,17 +888,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(VolumeFlowPerArea)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/VolumePerLength.g.cs b/UnitsNet/GeneratedCode/Quantities/VolumePerLength.g.cs index 6e574a90b3..c368e59a11 100644 --- a/UnitsNet/GeneratedCode/Quantities/VolumePerLength.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/VolumePerLength.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -589,7 +590,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Volum /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is VolumePerLength otherQuantity)) return false; @@ -621,7 +622,7 @@ public bool Equals(VolumePerLength other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is VolumePerLength otherQuantity)) throw new ArgumentException("Expected type VolumePerLength.", nameof(obj)); @@ -791,7 +792,7 @@ public VolumePerLength ToUnit(VolumePerLengthUnit unit, UnitConverter unitConver /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(VolumePerLengthUnit unit, out VolumePerLength? converted) + private bool TryToUnit(VolumePerLengthUnit unit, [NotNullWhen(true)] out VolumePerLength? converted) { if (Unit == unit) { @@ -799,7 +800,7 @@ private bool TryToUnit(VolumePerLengthUnit unit, out VolumePerLength? converted) return true; } - converted = (Unit, unit) switch + VolumePerLength? convertedOrNull = (Unit, unit) switch { // VolumePerLengthUnit -> BaseUnit (VolumePerLengthUnit.CubicYardPerFoot, VolumePerLengthUnit.CubicMeterPerMeter) => new VolumePerLength(_value * 2.50838208, VolumePerLengthUnit.CubicMeterPerMeter), @@ -817,10 +818,17 @@ private bool TryToUnit(VolumePerLengthUnit unit, out VolumePerLength? converted) (VolumePerLengthUnit.CubicMeterPerMeter, VolumePerLengthUnit.LiterPerMillimeter) => new VolumePerLength(_value, VolumePerLengthUnit.LiterPerMillimeter), (VolumePerLengthUnit.CubicMeterPerMeter, VolumePerLengthUnit.OilBarrelPerFoot) => new VolumePerLength(_value * 1.91713408, VolumePerLengthUnit.OilBarrelPerFoot), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -885,7 +893,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -897,7 +905,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -911,67 +919,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(VolumePerLength)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(VolumePerLength)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(VolumePerLength)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(VolumePerLength)) return this; @@ -985,17 +993,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(VolumePerLength)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/VolumetricHeatCapacity.g.cs b/UnitsNet/GeneratedCode/Quantities/VolumetricHeatCapacity.g.cs index 577f75c0e2..995dc55fa6 100644 --- a/UnitsNet/GeneratedCode/Quantities/VolumetricHeatCapacity.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/VolumetricHeatCapacity.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -630,7 +631,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Volum /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is VolumetricHeatCapacity otherQuantity)) return false; @@ -662,7 +663,7 @@ public bool Equals(VolumetricHeatCapacity other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is VolumetricHeatCapacity otherQuantity)) throw new ArgumentException("Expected type VolumetricHeatCapacity.", nameof(obj)); @@ -832,7 +833,7 @@ public VolumetricHeatCapacity ToUnit(VolumetricHeatCapacityUnit unit, UnitConver /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(VolumetricHeatCapacityUnit unit, out VolumetricHeatCapacity? converted) + private bool TryToUnit(VolumetricHeatCapacityUnit unit, [NotNullWhen(true)] out VolumetricHeatCapacity? converted) { if (Unit == unit) { @@ -840,7 +841,7 @@ private bool TryToUnit(VolumetricHeatCapacityUnit unit, out VolumetricHeatCapaci return true; } - converted = (Unit, unit) switch + VolumetricHeatCapacity? convertedOrNull = (Unit, unit) switch { // VolumetricHeatCapacityUnit -> BaseUnit (VolumetricHeatCapacityUnit.BtuPerCubicFootDegreeFahrenheit, VolumetricHeatCapacityUnit.JoulePerCubicMeterKelvin) => new VolumetricHeatCapacity(_value / 1.4910660e-5, VolumetricHeatCapacityUnit.JoulePerCubicMeterKelvin), @@ -862,10 +863,17 @@ private bool TryToUnit(VolumetricHeatCapacityUnit unit, out VolumetricHeatCapaci (VolumetricHeatCapacityUnit.JoulePerCubicMeterKelvin, VolumetricHeatCapacityUnit.MegajoulePerCubicMeterDegreeCelsius) => new VolumetricHeatCapacity((_value) / 1e6d, VolumetricHeatCapacityUnit.MegajoulePerCubicMeterDegreeCelsius), (VolumetricHeatCapacityUnit.JoulePerCubicMeterKelvin, VolumetricHeatCapacityUnit.MegajoulePerCubicMeterKelvin) => new VolumetricHeatCapacity((_value) / 1e6d, VolumetricHeatCapacityUnit.MegajoulePerCubicMeterKelvin), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -930,7 +938,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -942,7 +950,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -956,67 +964,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(VolumetricHeatCapacity)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(VolumetricHeatCapacity)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(VolumetricHeatCapacity)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(VolumetricHeatCapacity)) return this; @@ -1030,17 +1038,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(VolumetricHeatCapacity)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantities/WarpingMomentOfInertia.g.cs b/UnitsNet/GeneratedCode/Quantities/WarpingMomentOfInertia.g.cs index e452f6d027..4dc8aee8b8 100644 --- a/UnitsNet/GeneratedCode/Quantities/WarpingMomentOfInertia.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/WarpingMomentOfInertia.g.cs @@ -18,6 +18,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.Serialization; @@ -570,7 +571,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Warpi /// Indicates strict equality of two quantities, where both and are exactly equal. /// Consider using to check equality across different units and to specify a floating-point number error tolerance. [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")] - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null || !(obj is WarpingMomentOfInertia otherQuantity)) return false; @@ -602,7 +603,7 @@ public bool Equals(WarpingMomentOfInertia other) /// Greater than zero This instance follows in the sort order. /// /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is WarpingMomentOfInertia otherQuantity)) throw new ArgumentException("Expected type WarpingMomentOfInertia.", nameof(obj)); @@ -772,7 +773,7 @@ public WarpingMomentOfInertia ToUnit(WarpingMomentOfInertiaUnit unit, UnitConver /// The unit to convert to. /// The converted in , if successful. /// True if successful, otherwise false. - private bool TryToUnit(WarpingMomentOfInertiaUnit unit, out WarpingMomentOfInertia? converted) + private bool TryToUnit(WarpingMomentOfInertiaUnit unit, [NotNullWhen(true)] out WarpingMomentOfInertia? converted) { if (Unit == unit) { @@ -780,7 +781,7 @@ private bool TryToUnit(WarpingMomentOfInertiaUnit unit, out WarpingMomentOfInert return true; } - converted = (Unit, unit) switch + WarpingMomentOfInertia? convertedOrNull = (Unit, unit) switch { // WarpingMomentOfInertiaUnit -> BaseUnit (WarpingMomentOfInertiaUnit.CentimeterToTheSixth, WarpingMomentOfInertiaUnit.MeterToTheSixth) => new WarpingMomentOfInertia(_value / 1e12, WarpingMomentOfInertiaUnit.MeterToTheSixth), @@ -796,10 +797,17 @@ private bool TryToUnit(WarpingMomentOfInertiaUnit unit, out WarpingMomentOfInert (WarpingMomentOfInertiaUnit.MeterToTheSixth, WarpingMomentOfInertiaUnit.InchToTheSixth) => new WarpingMomentOfInertia(_value / Math.Pow(2.54e-2, 6), WarpingMomentOfInertiaUnit.InchToTheSixth), (WarpingMomentOfInertiaUnit.MeterToTheSixth, WarpingMomentOfInertiaUnit.MillimeterToTheSixth) => new WarpingMomentOfInertia(_value * 1e18, WarpingMomentOfInertiaUnit.MillimeterToTheSixth), - _ => null! + _ => null }; - return converted is not null; + if (convertedOrNull is null) + { + converted = default; + return false; + } + + converted = convertedOrNull.Value; + return true; } /// @@ -864,7 +872,7 @@ public string ToString(IFormatProvider? provider) /// /// The format string. /// The string representation. - public string ToString(string format) + public string ToString(string? format) { return ToString(format, CultureInfo.CurrentCulture); } @@ -876,7 +884,7 @@ public string ToString(string format) /// The format string. /// Format to use for localization and number formatting. Defaults to if null. /// The string representation. - public string ToString(string format, IFormatProvider? provider) + public string ToString(string? format, IFormatProvider? provider) { return QuantityFormatter.Format(this, format, provider); } @@ -890,67 +898,67 @@ TypeCode IConvertible.GetTypeCode() return TypeCode.Object; } - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(WarpingMomentOfInertia)} to bool is not supported."); } - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { return Convert.ToByte(_value); } - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(WarpingMomentOfInertia)} to char is not supported."); } - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { throw new InvalidCastException($"Converting {typeof(WarpingMomentOfInertia)} to DateTime is not supported."); } - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { return Convert.ToDecimal(_value); } - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { return Convert.ToDouble(_value); } - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { return Convert.ToInt16(_value); } - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { return Convert.ToInt32(_value); } - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { return Convert.ToInt64(_value); } - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { return Convert.ToSByte(_value); } - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { return Convert.ToSingle(_value); } - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { return ToString("g", provider); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(WarpingMomentOfInertia)) return this; @@ -964,17 +972,17 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) throw new InvalidCastException($"Converting {typeof(WarpingMomentOfInertia)} to {conversionType} is not supported."); } - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { return Convert.ToUInt16(_value); } - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { return Convert.ToUInt32(_value); } - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { return Convert.ToUInt64(_value); } diff --git a/UnitsNet/GeneratedCode/Quantity.g.cs b/UnitsNet/GeneratedCode/Quantity.g.cs index 6f9ef00cdc..d10cc28ebf 100644 --- a/UnitsNet/GeneratedCode/Quantity.g.cs +++ b/UnitsNet/GeneratedCode/Quantity.g.cs @@ -21,6 +21,7 @@ using System.Globalization; using UnitsNet.Units; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; #nullable enable @@ -291,7 +292,7 @@ public static IQuantity FromQuantityInfo(QuantityInfo quantityInfo, QuantityValu /// Unit enum value. /// The resulting quantity if successful, otherwise default. /// True if successful with assigned the value, otherwise false. - public static bool TryFrom(QuantityValue value, Enum unit, out IQuantity? quantity) + public static bool TryFrom(QuantityValue value, Enum unit, [NotNullWhen(true)] out IQuantity? quantity) { switch (unit) { @@ -659,7 +660,7 @@ public static bool TryFrom(QuantityValue value, Enum unit, out IQuantity? quanti /// Quantity string representation, such as "1.5 kg". Must be compatible with given quantity type. /// The resulting quantity if successful, otherwise default. /// The parsed quantity. - public static bool TryParse(IFormatProvider? formatProvider, Type quantityType, string quantityString, out IQuantity? quantity) + public static bool TryParse(IFormatProvider? formatProvider, Type quantityType, string quantityString, [NotNullWhen(true)] out IQuantity? quantity) { quantity = default(IQuantity); diff --git a/UnitsNet/QuantityFormatter.cs b/UnitsNet/QuantityFormatter.cs index 6948b14651..4d8a10d1ce 100644 --- a/UnitsNet/QuantityFormatter.cs +++ b/UnitsNet/QuantityFormatter.cs @@ -106,14 +106,14 @@ public static string Format(IQuantity quantity, string for /// /// /// The string representation. - public static string Format(IQuantity quantity, string format, IFormatProvider? formatProvider) + public static string Format(IQuantity quantity, string? format, IFormatProvider? formatProvider) where TUnitType : Enum { formatProvider ??= CultureInfo.CurrentCulture; return FormatUntrimmed(quantity, format, formatProvider).TrimEnd(); } - private static string FormatUntrimmed(IQuantity quantity, string format, IFormatProvider? formatProvider) + private static string FormatUntrimmed(IQuantity quantity, string? format, IFormatProvider? formatProvider) where TUnitType : Enum { formatProvider ??= CultureInfo.CurrentCulture; @@ -121,7 +121,7 @@ private static string FormatUntrimmed(IQuantity quantity, if (string.IsNullOrWhiteSpace(format)) format = "g"; - char formatSpecifier = format[0]; + char formatSpecifier = format![0]; // netstandard2.0 nullable quirk if (UnitsNetFormatSpecifiers.Any(unitsNetFormatSpecifier => unitsNetFormatSpecifier == formatSpecifier)) { diff --git a/UnitsNet/QuantityTypeConverter.cs b/UnitsNet/QuantityTypeConverter.cs index 4857a14b96..40f5b66d65 100644 --- a/UnitsNet/QuantityTypeConverter.cs +++ b/UnitsNet/QuantityTypeConverter.cs @@ -133,7 +133,7 @@ public class QuantityTypeConverter : TypeConverter where TQuantity : /// An that provides a format context. /// A that represents the type you want to convert from. /// true if this converter can perform the conversion; otherwise, false. - public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) + public override bool CanConvertFrom(ITypeDescriptorContext? context, Type sourceType) { return (sourceType == typeof(string)) || base.CanConvertFrom(context, sourceType); } @@ -167,7 +167,7 @@ public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceT /// An object. /// The conversion cannot be performed. /// Unit value is not a know unit enum type. - public override object? ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object? value) + public override object? ConvertFrom(ITypeDescriptorContext? context, CultureInfo? culture, object value) { if (value is string stringValue && !string.IsNullOrEmpty(stringValue)) { @@ -201,7 +201,7 @@ public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceT /// true if this converter can perform the conversion; otherwise, false. /// An that provides a format context. /// A that represents the type you want to convert to. - public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) + public override bool CanConvertTo(ITypeDescriptorContext? context, Type? destinationType) { return (destinationType == typeof(string)) || base.CanConvertTo(context, destinationType); } @@ -214,7 +214,7 @@ public override bool CanConvertTo(ITypeDescriptorContext context, Type destinati /// The to convert the parameter to. /// The parameter is null. /// The conversion cannot be performed. - public override object? ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object? value, Type destinationType) + public override object? ConvertTo(ITypeDescriptorContext? context, CultureInfo? culture, object? value, Type destinationType) { DisplayAsUnitAttribute? displayAsUnit = GetAttribute(context); diff --git a/UnitsNet/QuantityValue.cs b/UnitsNet/QuantityValue.cs index 065d70db23..16663d7980 100644 --- a/UnitsNet/QuantityValue.cs +++ b/UnitsNet/QuantityValue.cs @@ -139,7 +139,7 @@ public static explicit operator decimal(QuantityValue number) #region Operators and Comparators /// - public override bool Equals(object other) + public override bool Equals(object? other) { if (other is QuantityValue qv) { @@ -239,7 +239,7 @@ public int CompareTo(QuantityValue other) } /// - public int CompareTo(object obj) + public int CompareTo(object? obj) { if (obj is null) throw new ArgumentNullException(nameof(obj)); if (!(obj is QuantityValue other)) throw new ArgumentException("Expected type QuantityValue.", nameof(obj)); @@ -314,7 +314,7 @@ public string ToString(IFormatProvider formatProvider) /// Standard format specifiers. Because the underlying value can be double or decimal, the meaning can vary /// Culture specific settings /// A string representation of the number - public string ToString(string format, IFormatProvider formatProvider) + public string ToString(string? format, IFormatProvider? formatProvider) { if (IsDecimal) { diff --git a/UnitsNet/UnitConverter.cs b/UnitsNet/UnitConverter.cs index 3bc2eeac33..d2cc28822a 100644 --- a/UnitsNet/UnitConverter.cs +++ b/UnitsNet/UnitConverter.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Concurrent; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Reflection; using System.Linq; @@ -215,7 +216,7 @@ internal ConversionFunction GetConversionFunction(ConversionFunctionLookupKey lo /// To unit enum value, such as . /// The quantity conversion function. /// true if set; otherwise, false. - public bool TryGetConversionFunction(Enum from, Enum to, out ConversionFunction conversionFunction) where TQuantity : IQuantity + public bool TryGetConversionFunction(Enum from, Enum to, [NotNullWhen(true)] out ConversionFunction? conversionFunction) where TQuantity : IQuantity { return TryGetConversionFunction(typeof(TQuantity), from, typeof(TQuantity), to, out conversionFunction); } @@ -229,7 +230,7 @@ public bool TryGetConversionFunction(Enum from, Enum to, out Conversi /// To unit enum value, such as . /// The quantity conversion function. /// true if set; otherwise, false. - public bool TryGetConversionFunction(Enum from, Enum to, out ConversionFunction conversionFunction) + public bool TryGetConversionFunction(Enum from, Enum to, [NotNullWhen(true)] out ConversionFunction? conversionFunction) where TQuantityFrom : IQuantity where TQuantityTo : IQuantity { @@ -245,7 +246,7 @@ public bool TryGetConversionFunction(Enum from, Enum /// To unit enum value, such as . /// The quantity conversion function. /// true if set; otherwise, false. - public bool TryGetConversionFunction(Type fromType, Enum from, Type toType, Enum to, out ConversionFunction conversionFunction) + public bool TryGetConversionFunction(Type fromType, Enum from, Type toType, Enum to, [NotNullWhen(true)] out ConversionFunction? conversionFunction) { var conversionLookup = new ConversionFunctionLookupKey(fromType, from, toType, to); return TryGetConversionFunction(conversionLookup, out conversionFunction); @@ -257,7 +258,7 @@ public bool TryGetConversionFunction(Type fromType, Enum from, Type toType, Enum /// /// /// true if set; otherwise, false. - public bool TryGetConversionFunction(ConversionFunctionLookupKey lookupKey, out ConversionFunction conversionFunction) + public bool TryGetConversionFunction(ConversionFunctionLookupKey lookupKey, [NotNullWhen(true)] out ConversionFunction? conversionFunction) { return ConversionFunctions.TryGetValue(lookupKey, out conversionFunction); } @@ -293,7 +294,7 @@ public static bool TryConvert(QuantityValue fromValue, Enum fromUnitValue, Enum try { // We're not going to implement TryAs() in all quantities, so let's just try-catch here - convertedValue = fromQuantity!.As(toUnitValue); + convertedValue = fromQuantity.As(toUnitValue); return true; } catch @@ -464,7 +465,7 @@ public static double ConvertByAbbreviation(QuantityValue fromValue, string quant if (!TryGetUnitType(quantityName, out Type? unitType)) throw new UnitNotFoundException($"The unit type for the given quantity was not found: {quantityName}"); - var cultureInfo = string.IsNullOrWhiteSpace(culture) ? CultureInfo.CurrentCulture : new CultureInfo(culture!); + var cultureInfo = string.IsNullOrWhiteSpace(culture) ? CultureInfo.CurrentCulture : new CultureInfo(culture); var fromUnit = UnitParser.Default.Parse(fromUnitAbbrev, unitType!, cultureInfo); // ex: ("m", LengthUnit) => LengthUnit.Meter var fromQuantity = Quantity.From(fromValue, fromUnit); @@ -541,7 +542,7 @@ public static bool TryConvertByAbbreviation(QuantityValue fromValue, string quan if (!TryGetUnitType(quantityName, out Type? unitType)) return false; - var cultureInfo = string.IsNullOrWhiteSpace(culture) ? CultureInfo.CurrentCulture : new CultureInfo(culture!); + var cultureInfo = string.IsNullOrWhiteSpace(culture) ? CultureInfo.CurrentCulture : new CultureInfo(culture); if (!UnitParser.Default.TryParse(fromUnitAbbrev, unitType!, cultureInfo, out Enum? fromUnit)) // ex: ("m", LengthUnit) => LengthUnit.Meter return false; @@ -549,8 +550,8 @@ public static bool TryConvertByAbbreviation(QuantityValue fromValue, string quan if (!UnitParser.Default.TryParse(toUnitAbbrev, unitType!, cultureInfo, out Enum? toUnit)) // ex:("cm", LengthUnit) => LengthUnit.Centimeter return false; - var fromQuantity = Quantity.From(fromValue, fromUnit!); - result = fromQuantity.As(toUnit!); + var fromQuantity = Quantity.From(fromValue, fromUnit); + result = fromQuantity.As(toUnit); return true; }