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;
}