diff --git a/CodeGen/Generators/UnitsNetGen/QuantityGenerator.cs b/CodeGen/Generators/UnitsNetGen/QuantityGenerator.cs
index 5c9e7b67c1..a5bd6c3f77 100644
--- a/CodeGen/Generators/UnitsNetGen/QuantityGenerator.cs
+++ b/CodeGen/Generators/UnitsNetGen/QuantityGenerator.cs
@@ -152,60 +152,60 @@ private void GenerateQuantityInfo()
///
/// Provides detailed information about the quantity, including its name, base unit, unit mappings, base dimensions, and conversion functions.
///
- public sealed class {quantityInfoClassName}: QuantityInfo<{_quantity.Name}, {_unitEnumName}>
+ private static class {quantityInfoClassName}
{{");
Writer.WL($@"
- ///
- public {quantityInfoClassName}(string name, {_unitEnumName} baseUnit, IEnumerable> unitMappings, {_quantity.Name} zero, BaseDimensions baseDimensions,
- QuantityFromDelegate<{_quantity.Name}, {_unitEnumName}> fromDelegate, ResourceManager? unitAbbreviations)
- : base(name, baseUnit, unitMappings, zero, baseDimensions, fromDelegate, {_quantity.Name}.RegisterDefaultConversions, unitAbbreviations)
- {{
- }}
-
- ///
- public {quantityInfoClassName}(string name, {_unitEnumName} baseUnit, IEnumerable> unitMappings, {_quantity.Name} zero, BaseDimensions baseDimensions)
- : this(name, baseUnit, unitMappings, zero, baseDimensions, {_quantity.Name}.From, new ResourceManager(""UnitsNet.GeneratedCode.Resources.{_quantity.Name}"", typeof({_quantity.Name}).Assembly))
- {{
- }}
-
- ///
- /// Creates a new instance of the class with the default settings for the {_quantity.Name} quantity.
- ///
- /// A new instance of the class with the default settings.
- public static {quantityInfoClassName} CreateDefault()
- {{
- return new {quantityInfoClassName}(nameof({_quantity.Name}), DefaultBaseUnit, GetDefaultMappings(), new {_quantity.Name}(0, DefaultBaseUnit), DefaultBaseDimensions);
- }}
-
///
/// Creates a new instance of the class with the default settings for the {_quantity.Name} quantity and a callback for customizing the default unit mappings.
///
+ ///
+ /// When provided, the resource manager used for localizing the quantity's unit abbreviations. Defaults to the built-in abbreviations.
+ ///
///
- /// A callback function for customizing the default unit mappings.
+ /// Optionally add, replace or remove unit definitions from the default set of units.
///
///
/// A new instance of the class with the default settings.
///
- public static {quantityInfoClassName} CreateDefault(Func>, IEnumerable>> customizeUnits)
+ private static QuantityInfo<{_quantity.Name}, {_unitEnumName}> Create(
+ ResourceManager? unitAbbreviations = null,
+ Func>, IEnumerable>>? customizeUnits = null)
{{
- return new {quantityInfoClassName}(nameof({_quantity.Name}), DefaultBaseUnit, customizeUnits(GetDefaultMappings()), new {_quantity.Name}(0, DefaultBaseUnit), DefaultBaseDimensions);
+ IEnumerable> unitMappings = {_quantity.Name}Info.GetDefaultMappings();
+ if (customizeUnits != null)
+ unitMappings = customizeUnits(unitMappings);
+
+ return new QuantityInfo<{_quantity.Name}, {_unitEnumName}>(
+ name: nameof({_quantity.Name}),
+ baseUnit: DefaultBaseUnit,
+ unitMappings: unitMappings,
+ zero: new {_quantity.Name}(0, DefaultBaseUnit),
+ baseDimensions: DefaultBaseDimensions,
+ fromDelegate: From,
+ registerUnitConversions: RegisterDefaultConversions,
+ unitAbbreviations ?? DefaultUnitAbbreviations);
}}
///
/// The for is {_quantity.BaseDimensions}.
///
- public static BaseDimensions DefaultBaseDimensions {{ get; }} = {createDimensionsExpression};
+ private static BaseDimensions DefaultBaseDimensions {{ get; }} = {createDimensionsExpression};
///
/// The default base unit of {_quantity.Name} is {_baseUnit.SingularName}. All conversions, as defined in the , go via this value.
///
- public static {_unitEnumName} DefaultBaseUnit {{ get; }} = {_unitEnumName}.{_baseUnit.SingularName};
+ private static {_unitEnumName} DefaultBaseUnit {{ get; }} = {_unitEnumName}.{_baseUnit.SingularName};
+
+ ///
+ /// The default resource manager for unit abbreviations of the {_quantity.Name} quantity.
+ ///
+ private static ResourceManager DefaultUnitAbbreviations {{ get; }} = new(""UnitsNet.GeneratedCode.Resources.{_quantity.Name}"", typeof({_quantity.Name}).Assembly);
///
/// Retrieves the default mappings for .
///
/// An of representing the default unit mappings for {_quantity.Name}.
- public static IEnumerable> GetDefaultMappings()
+ private static IEnumerable> GetDefaultMappings()
{{");
foreach (Unit unit in _quantity.Units)
@@ -247,7 +247,7 @@ private void GenerateStaticConstructor()
static {_quantity.Name}()
{{");
Writer.WL($@"
- Info = {_quantity.Name}Info.CreateDefault();
+ Info = {_quantity.Name}Info.Create();
DefaultConversionFunctions = new UnitConverter();
RegisterDefaultConversions(DefaultConversionFunctions);
}}
diff --git a/UnitsNet/GeneratedCode/Quantities/AbsorbedDoseOfIonizingRadiation.g.cs b/UnitsNet/GeneratedCode/Quantities/AbsorbedDoseOfIonizingRadiation.g.cs
index 5e4266b7c4..bdddf3cff8 100644
--- a/UnitsNet/GeneratedCode/Quantities/AbsorbedDoseOfIonizingRadiation.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/AbsorbedDoseOfIonizingRadiation.g.cs
@@ -65,59 +65,59 @@ namespace UnitsNet
///
/// Provides detailed information about the quantity, including its name, base unit, unit mappings, base dimensions, and conversion functions.
///
- public sealed class AbsorbedDoseOfIonizingRadiationInfo: QuantityInfo
+ private static class AbsorbedDoseOfIonizingRadiationInfo
{
- ///
- public AbsorbedDoseOfIonizingRadiationInfo(string name, AbsorbedDoseOfIonizingRadiationUnit baseUnit, IEnumerable> unitMappings, AbsorbedDoseOfIonizingRadiation zero, BaseDimensions baseDimensions,
- QuantityFromDelegate fromDelegate, ResourceManager? unitAbbreviations)
- : base(name, baseUnit, unitMappings, zero, baseDimensions, fromDelegate, AbsorbedDoseOfIonizingRadiation.RegisterDefaultConversions, unitAbbreviations)
- {
- }
-
- ///
- public AbsorbedDoseOfIonizingRadiationInfo(string name, AbsorbedDoseOfIonizingRadiationUnit baseUnit, IEnumerable> unitMappings, AbsorbedDoseOfIonizingRadiation zero, BaseDimensions baseDimensions)
- : this(name, baseUnit, unitMappings, zero, baseDimensions, AbsorbedDoseOfIonizingRadiation.From, new ResourceManager("UnitsNet.GeneratedCode.Resources.AbsorbedDoseOfIonizingRadiation", typeof(AbsorbedDoseOfIonizingRadiation).Assembly))
- {
- }
-
- ///
- /// Creates a new instance of the class with the default settings for the AbsorbedDoseOfIonizingRadiation quantity.
- ///
- /// A new instance of the class with the default settings.
- public static AbsorbedDoseOfIonizingRadiationInfo CreateDefault()
- {
- return new AbsorbedDoseOfIonizingRadiationInfo(nameof(AbsorbedDoseOfIonizingRadiation), DefaultBaseUnit, GetDefaultMappings(), new AbsorbedDoseOfIonizingRadiation(0, DefaultBaseUnit), DefaultBaseDimensions);
- }
-
///
/// Creates a new instance of the class with the default settings for the AbsorbedDoseOfIonizingRadiation quantity and a callback for customizing the default unit mappings.
///
+ ///
+ /// When provided, the resource manager used for localizing the quantity's unit abbreviations. Defaults to the built-in abbreviations.
+ ///
///
- /// A callback function for customizing the default unit mappings.
+ /// Optionally add, replace or remove unit definitions from the default set of units.
///
///
/// A new instance of the class with the default settings.
///
- public static AbsorbedDoseOfIonizingRadiationInfo CreateDefault(Func>, IEnumerable>> customizeUnits)
+ private static QuantityInfo Create(
+ ResourceManager? unitAbbreviations = null,
+ Func>, IEnumerable>>? customizeUnits = null)
{
- return new AbsorbedDoseOfIonizingRadiationInfo(nameof(AbsorbedDoseOfIonizingRadiation), DefaultBaseUnit, customizeUnits(GetDefaultMappings()), new AbsorbedDoseOfIonizingRadiation(0, DefaultBaseUnit), DefaultBaseDimensions);
+ IEnumerable> unitMappings = AbsorbedDoseOfIonizingRadiationInfo.GetDefaultMappings();
+ if (customizeUnits != null)
+ unitMappings = customizeUnits(unitMappings);
+
+ return new QuantityInfo(
+ name: nameof(AbsorbedDoseOfIonizingRadiation),
+ baseUnit: DefaultBaseUnit,
+ unitMappings: unitMappings,
+ zero: new AbsorbedDoseOfIonizingRadiation(0, DefaultBaseUnit),
+ baseDimensions: DefaultBaseDimensions,
+ fromDelegate: From,
+ registerUnitConversions: RegisterDefaultConversions,
+ unitAbbreviations ?? DefaultUnitAbbreviations);
}
///
/// The for is [T^-2][L^2].
///
- public static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(2, 0, -2, 0, 0, 0, 0);
+ private static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(2, 0, -2, 0, 0, 0, 0);
///
/// The default base unit of AbsorbedDoseOfIonizingRadiation is Gray. All conversions, as defined in the , go via this value.
///
- public static AbsorbedDoseOfIonizingRadiationUnit DefaultBaseUnit { get; } = AbsorbedDoseOfIonizingRadiationUnit.Gray;
+ private static AbsorbedDoseOfIonizingRadiationUnit DefaultBaseUnit { get; } = AbsorbedDoseOfIonizingRadiationUnit.Gray;
+
+ ///
+ /// The default resource manager for unit abbreviations of the AbsorbedDoseOfIonizingRadiation quantity.
+ ///
+ private static ResourceManager DefaultUnitAbbreviations { get; } = new("UnitsNet.GeneratedCode.Resources.AbsorbedDoseOfIonizingRadiation", typeof(AbsorbedDoseOfIonizingRadiation).Assembly);
///
/// Retrieves the default mappings for .
///
/// An of representing the default unit mappings for AbsorbedDoseOfIonizingRadiation.
- public static IEnumerable> GetDefaultMappings()
+ private static IEnumerable> GetDefaultMappings()
{
yield return new (AbsorbedDoseOfIonizingRadiationUnit.Centigray, "Centigray", "Centigrays", new BaseUnits(length: LengthUnit.Decimeter, time: DurationUnit.Second));
yield return new (AbsorbedDoseOfIonizingRadiationUnit.Femtogray, "Femtogray", "Femtograys", BaseUnits.Undefined);
@@ -140,7 +140,7 @@ public static IEnumerable> G
static AbsorbedDoseOfIonizingRadiation()
{
- Info = AbsorbedDoseOfIonizingRadiationInfo.CreateDefault();
+ Info = AbsorbedDoseOfIonizingRadiationInfo.Create();
DefaultConversionFunctions = new UnitConverter();
RegisterDefaultConversions(DefaultConversionFunctions);
}
diff --git a/UnitsNet/GeneratedCode/Quantities/Acceleration.g.cs b/UnitsNet/GeneratedCode/Quantities/Acceleration.g.cs
index 20efe14d95..70fff8ae3b 100644
--- a/UnitsNet/GeneratedCode/Quantities/Acceleration.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/Acceleration.g.cs
@@ -69,59 +69,59 @@ namespace UnitsNet
///
/// Provides detailed information about the quantity, including its name, base unit, unit mappings, base dimensions, and conversion functions.
///
- public sealed class AccelerationInfo: QuantityInfo
+ private static class AccelerationInfo
{
- ///
- public AccelerationInfo(string name, AccelerationUnit baseUnit, IEnumerable> unitMappings, Acceleration zero, BaseDimensions baseDimensions,
- QuantityFromDelegate fromDelegate, ResourceManager? unitAbbreviations)
- : base(name, baseUnit, unitMappings, zero, baseDimensions, fromDelegate, Acceleration.RegisterDefaultConversions, unitAbbreviations)
- {
- }
-
- ///
- public AccelerationInfo(string name, AccelerationUnit baseUnit, IEnumerable> unitMappings, Acceleration zero, BaseDimensions baseDimensions)
- : this(name, baseUnit, unitMappings, zero, baseDimensions, Acceleration.From, new ResourceManager("UnitsNet.GeneratedCode.Resources.Acceleration", typeof(Acceleration).Assembly))
- {
- }
-
- ///
- /// Creates a new instance of the class with the default settings for the Acceleration quantity.
- ///
- /// A new instance of the class with the default settings.
- public static AccelerationInfo CreateDefault()
- {
- return new AccelerationInfo(nameof(Acceleration), DefaultBaseUnit, GetDefaultMappings(), new Acceleration(0, DefaultBaseUnit), DefaultBaseDimensions);
- }
-
///
/// Creates a new instance of the class with the default settings for the Acceleration quantity and a callback for customizing the default unit mappings.
///
+ ///
+ /// When provided, the resource manager used for localizing the quantity's unit abbreviations. Defaults to the built-in abbreviations.
+ ///
///
- /// A callback function for customizing the default unit mappings.
+ /// Optionally add, replace or remove unit definitions from the default set of units.
///
///
/// A new instance of the class with the default settings.
///
- public static AccelerationInfo CreateDefault(Func>, IEnumerable>> customizeUnits)
+ private static QuantityInfo Create(
+ ResourceManager? unitAbbreviations = null,
+ Func>, IEnumerable>>? customizeUnits = null)
{
- return new AccelerationInfo(nameof(Acceleration), DefaultBaseUnit, customizeUnits(GetDefaultMappings()), new Acceleration(0, DefaultBaseUnit), DefaultBaseDimensions);
+ IEnumerable> unitMappings = AccelerationInfo.GetDefaultMappings();
+ if (customizeUnits != null)
+ unitMappings = customizeUnits(unitMappings);
+
+ return new QuantityInfo(
+ name: nameof(Acceleration),
+ baseUnit: DefaultBaseUnit,
+ unitMappings: unitMappings,
+ zero: new Acceleration(0, DefaultBaseUnit),
+ baseDimensions: DefaultBaseDimensions,
+ fromDelegate: From,
+ registerUnitConversions: RegisterDefaultConversions,
+ unitAbbreviations ?? DefaultUnitAbbreviations);
}
///
/// The for is [T^-2][L].
///
- public static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(1, 0, -2, 0, 0, 0, 0);
+ private static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(1, 0, -2, 0, 0, 0, 0);
///
/// The default base unit of Acceleration is MeterPerSecondSquared. All conversions, as defined in the , go via this value.
///
- public static AccelerationUnit DefaultBaseUnit { get; } = AccelerationUnit.MeterPerSecondSquared;
+ private static AccelerationUnit DefaultBaseUnit { get; } = AccelerationUnit.MeterPerSecondSquared;
+
+ ///
+ /// The default resource manager for unit abbreviations of the Acceleration quantity.
+ ///
+ private static ResourceManager DefaultUnitAbbreviations { get; } = new("UnitsNet.GeneratedCode.Resources.Acceleration", typeof(Acceleration).Assembly);
///
/// Retrieves the default mappings for .
///
/// An of representing the default unit mappings for Acceleration.
- public static IEnumerable> GetDefaultMappings()
+ private static IEnumerable> GetDefaultMappings()
{
yield return new (AccelerationUnit.CentimeterPerSecondSquared, "CentimeterPerSecondSquared", "CentimetersPerSecondSquared", new BaseUnits(length: LengthUnit.Centimeter, time: DurationUnit.Second));
yield return new (AccelerationUnit.DecimeterPerSecondSquared, "DecimeterPerSecondSquared", "DecimetersPerSecondSquared", new BaseUnits(length: LengthUnit.Decimeter, time: DurationUnit.Second));
@@ -142,7 +142,7 @@ public static IEnumerable> GetDefaultMappings()
static Acceleration()
{
- Info = AccelerationInfo.CreateDefault();
+ Info = AccelerationInfo.Create();
DefaultConversionFunctions = new UnitConverter();
RegisterDefaultConversions(DefaultConversionFunctions);
}
diff --git a/UnitsNet/GeneratedCode/Quantities/AmountOfSubstance.g.cs b/UnitsNet/GeneratedCode/Quantities/AmountOfSubstance.g.cs
index 161d381d26..187b815572 100644
--- a/UnitsNet/GeneratedCode/Quantities/AmountOfSubstance.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/AmountOfSubstance.g.cs
@@ -70,59 +70,59 @@ namespace UnitsNet
///
/// Provides detailed information about the quantity, including its name, base unit, unit mappings, base dimensions, and conversion functions.
///
- public sealed class AmountOfSubstanceInfo: QuantityInfo
+ private static class AmountOfSubstanceInfo
{
- ///
- public AmountOfSubstanceInfo(string name, AmountOfSubstanceUnit baseUnit, IEnumerable> unitMappings, AmountOfSubstance zero, BaseDimensions baseDimensions,
- QuantityFromDelegate fromDelegate, ResourceManager? unitAbbreviations)
- : base(name, baseUnit, unitMappings, zero, baseDimensions, fromDelegate, AmountOfSubstance.RegisterDefaultConversions, unitAbbreviations)
- {
- }
-
- ///
- public AmountOfSubstanceInfo(string name, AmountOfSubstanceUnit baseUnit, IEnumerable> unitMappings, AmountOfSubstance zero, BaseDimensions baseDimensions)
- : this(name, baseUnit, unitMappings, zero, baseDimensions, AmountOfSubstance.From, new ResourceManager("UnitsNet.GeneratedCode.Resources.AmountOfSubstance", typeof(AmountOfSubstance).Assembly))
- {
- }
-
- ///
- /// Creates a new instance of the class with the default settings for the AmountOfSubstance quantity.
- ///
- /// A new instance of the class with the default settings.
- public static AmountOfSubstanceInfo CreateDefault()
- {
- return new AmountOfSubstanceInfo(nameof(AmountOfSubstance), DefaultBaseUnit, GetDefaultMappings(), new AmountOfSubstance(0, DefaultBaseUnit), DefaultBaseDimensions);
- }
-
///
/// Creates a new instance of the class with the default settings for the AmountOfSubstance quantity and a callback for customizing the default unit mappings.
///
+ ///
+ /// When provided, the resource manager used for localizing the quantity's unit abbreviations. Defaults to the built-in abbreviations.
+ ///
///
- /// A callback function for customizing the default unit mappings.
+ /// Optionally add, replace or remove unit definitions from the default set of units.
///
///
/// A new instance of the class with the default settings.
///
- public static AmountOfSubstanceInfo CreateDefault(Func>, IEnumerable>> customizeUnits)
+ private static QuantityInfo Create(
+ ResourceManager? unitAbbreviations = null,
+ Func>, IEnumerable>>? customizeUnits = null)
{
- return new AmountOfSubstanceInfo(nameof(AmountOfSubstance), DefaultBaseUnit, customizeUnits(GetDefaultMappings()), new AmountOfSubstance(0, DefaultBaseUnit), DefaultBaseDimensions);
+ IEnumerable> unitMappings = AmountOfSubstanceInfo.GetDefaultMappings();
+ if (customizeUnits != null)
+ unitMappings = customizeUnits(unitMappings);
+
+ return new QuantityInfo(
+ name: nameof(AmountOfSubstance),
+ baseUnit: DefaultBaseUnit,
+ unitMappings: unitMappings,
+ zero: new AmountOfSubstance(0, DefaultBaseUnit),
+ baseDimensions: DefaultBaseDimensions,
+ fromDelegate: From,
+ registerUnitConversions: RegisterDefaultConversions,
+ unitAbbreviations ?? DefaultUnitAbbreviations);
}
///
/// The for is [N].
///
- public static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(0, 0, 0, 0, 0, 1, 0);
+ private static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(0, 0, 0, 0, 0, 1, 0);
///
/// The default base unit of AmountOfSubstance is Mole. All conversions, as defined in the , go via this value.
///
- public static AmountOfSubstanceUnit DefaultBaseUnit { get; } = AmountOfSubstanceUnit.Mole;
+ private static AmountOfSubstanceUnit DefaultBaseUnit { get; } = AmountOfSubstanceUnit.Mole;
+
+ ///
+ /// The default resource manager for unit abbreviations of the AmountOfSubstance quantity.
+ ///
+ private static ResourceManager DefaultUnitAbbreviations { get; } = new("UnitsNet.GeneratedCode.Resources.AmountOfSubstance", typeof(AmountOfSubstance).Assembly);
///
/// Retrieves the default mappings for .
///
/// An of representing the default unit mappings for AmountOfSubstance.
- public static IEnumerable> GetDefaultMappings()
+ private static IEnumerable> GetDefaultMappings()
{
yield return new (AmountOfSubstanceUnit.Centimole, "Centimole", "Centimoles", new BaseUnits(amount: AmountOfSubstanceUnit.Centimole));
yield return new (AmountOfSubstanceUnit.CentipoundMole, "CentipoundMole", "CentipoundMoles", new BaseUnits(amount: AmountOfSubstanceUnit.CentipoundMole));
@@ -146,7 +146,7 @@ public static IEnumerable> GetDefaultMappi
static AmountOfSubstance()
{
- Info = AmountOfSubstanceInfo.CreateDefault();
+ Info = AmountOfSubstanceInfo.Create();
DefaultConversionFunctions = new UnitConverter();
RegisterDefaultConversions(DefaultConversionFunctions);
}
diff --git a/UnitsNet/GeneratedCode/Quantities/AmplitudeRatio.g.cs b/UnitsNet/GeneratedCode/Quantities/AmplitudeRatio.g.cs
index c6e25b5989..ed35806958 100644
--- a/UnitsNet/GeneratedCode/Quantities/AmplitudeRatio.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/AmplitudeRatio.g.cs
@@ -62,59 +62,59 @@ namespace UnitsNet
///
/// Provides detailed information about the quantity, including its name, base unit, unit mappings, base dimensions, and conversion functions.
///
- public sealed class AmplitudeRatioInfo: QuantityInfo
+ private static class AmplitudeRatioInfo
{
- ///
- public AmplitudeRatioInfo(string name, AmplitudeRatioUnit baseUnit, IEnumerable> unitMappings, AmplitudeRatio zero, BaseDimensions baseDimensions,
- QuantityFromDelegate fromDelegate, ResourceManager? unitAbbreviations)
- : base(name, baseUnit, unitMappings, zero, baseDimensions, fromDelegate, AmplitudeRatio.RegisterDefaultConversions, unitAbbreviations)
- {
- }
-
- ///
- public AmplitudeRatioInfo(string name, AmplitudeRatioUnit baseUnit, IEnumerable> unitMappings, AmplitudeRatio zero, BaseDimensions baseDimensions)
- : this(name, baseUnit, unitMappings, zero, baseDimensions, AmplitudeRatio.From, new ResourceManager("UnitsNet.GeneratedCode.Resources.AmplitudeRatio", typeof(AmplitudeRatio).Assembly))
- {
- }
-
- ///
- /// Creates a new instance of the class with the default settings for the AmplitudeRatio quantity.
- ///
- /// A new instance of the class with the default settings.
- public static AmplitudeRatioInfo CreateDefault()
- {
- return new AmplitudeRatioInfo(nameof(AmplitudeRatio), DefaultBaseUnit, GetDefaultMappings(), new AmplitudeRatio(0, DefaultBaseUnit), DefaultBaseDimensions);
- }
-
///
/// Creates a new instance of the class with the default settings for the AmplitudeRatio quantity and a callback for customizing the default unit mappings.
///
+ ///
+ /// When provided, the resource manager used for localizing the quantity's unit abbreviations. Defaults to the built-in abbreviations.
+ ///
///
- /// A callback function for customizing the default unit mappings.
+ /// Optionally add, replace or remove unit definitions from the default set of units.
///
///
/// A new instance of the class with the default settings.
///
- public static AmplitudeRatioInfo CreateDefault(Func>, IEnumerable>> customizeUnits)
+ private static QuantityInfo Create(
+ ResourceManager? unitAbbreviations = null,
+ Func>, IEnumerable>>? customizeUnits = null)
{
- return new AmplitudeRatioInfo(nameof(AmplitudeRatio), DefaultBaseUnit, customizeUnits(GetDefaultMappings()), new AmplitudeRatio(0, DefaultBaseUnit), DefaultBaseDimensions);
+ IEnumerable> unitMappings = AmplitudeRatioInfo.GetDefaultMappings();
+ if (customizeUnits != null)
+ unitMappings = customizeUnits(unitMappings);
+
+ return new QuantityInfo(
+ name: nameof(AmplitudeRatio),
+ baseUnit: DefaultBaseUnit,
+ unitMappings: unitMappings,
+ zero: new AmplitudeRatio(0, DefaultBaseUnit),
+ baseDimensions: DefaultBaseDimensions,
+ fromDelegate: From,
+ registerUnitConversions: RegisterDefaultConversions,
+ unitAbbreviations ?? DefaultUnitAbbreviations);
}
///
/// The for is .
///
- public static BaseDimensions DefaultBaseDimensions { get; } = BaseDimensions.Dimensionless;
+ private static BaseDimensions DefaultBaseDimensions { get; } = BaseDimensions.Dimensionless;
///
/// The default base unit of AmplitudeRatio is DecibelVolt. All conversions, as defined in the , go via this value.
///
- public static AmplitudeRatioUnit DefaultBaseUnit { get; } = AmplitudeRatioUnit.DecibelVolt;
+ private static AmplitudeRatioUnit DefaultBaseUnit { get; } = AmplitudeRatioUnit.DecibelVolt;
+
+ ///
+ /// The default resource manager for unit abbreviations of the AmplitudeRatio quantity.
+ ///
+ private static ResourceManager DefaultUnitAbbreviations { get; } = new("UnitsNet.GeneratedCode.Resources.AmplitudeRatio", typeof(AmplitudeRatio).Assembly);
///
/// Retrieves the default mappings for .
///
/// An of representing the default unit mappings for AmplitudeRatio.
- public static IEnumerable> GetDefaultMappings()
+ private static IEnumerable> GetDefaultMappings()
{
yield return new (AmplitudeRatioUnit.DecibelMicrovolt, "DecibelMicrovolt", "DecibelMicrovolts", BaseUnits.Undefined);
yield return new (AmplitudeRatioUnit.DecibelMillivolt, "DecibelMillivolt", "DecibelMillivolts", BaseUnits.Undefined);
@@ -125,7 +125,7 @@ public static IEnumerable> GetDefaultMappings
static AmplitudeRatio()
{
- Info = AmplitudeRatioInfo.CreateDefault();
+ Info = AmplitudeRatioInfo.Create();
DefaultConversionFunctions = new UnitConverter();
RegisterDefaultConversions(DefaultConversionFunctions);
}
diff --git a/UnitsNet/GeneratedCode/Quantities/Angle.g.cs b/UnitsNet/GeneratedCode/Quantities/Angle.g.cs
index ab3c77211a..f241608b34 100644
--- a/UnitsNet/GeneratedCode/Quantities/Angle.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/Angle.g.cs
@@ -67,59 +67,59 @@ namespace UnitsNet
///
/// Provides detailed information about the quantity, including its name, base unit, unit mappings, base dimensions, and conversion functions.
///
- public sealed class AngleInfo: QuantityInfo
+ private static class AngleInfo
{
- ///
- public AngleInfo(string name, AngleUnit baseUnit, IEnumerable> unitMappings, Angle zero, BaseDimensions baseDimensions,
- QuantityFromDelegate fromDelegate, ResourceManager? unitAbbreviations)
- : base(name, baseUnit, unitMappings, zero, baseDimensions, fromDelegate, Angle.RegisterDefaultConversions, unitAbbreviations)
- {
- }
-
- ///
- public AngleInfo(string name, AngleUnit baseUnit, IEnumerable> unitMappings, Angle zero, BaseDimensions baseDimensions)
- : this(name, baseUnit, unitMappings, zero, baseDimensions, Angle.From, new ResourceManager("UnitsNet.GeneratedCode.Resources.Angle", typeof(Angle).Assembly))
- {
- }
-
- ///
- /// Creates a new instance of the class with the default settings for the Angle quantity.
- ///
- /// A new instance of the class with the default settings.
- public static AngleInfo CreateDefault()
- {
- return new AngleInfo(nameof(Angle), DefaultBaseUnit, GetDefaultMappings(), new Angle(0, DefaultBaseUnit), DefaultBaseDimensions);
- }
-
///
/// Creates a new instance of the class with the default settings for the Angle quantity and a callback for customizing the default unit mappings.
///
+ ///
+ /// When provided, the resource manager used for localizing the quantity's unit abbreviations. Defaults to the built-in abbreviations.
+ ///
///
- /// A callback function for customizing the default unit mappings.
+ /// Optionally add, replace or remove unit definitions from the default set of units.
///
///
/// A new instance of the class with the default settings.
///
- public static AngleInfo CreateDefault(Func>, IEnumerable>> customizeUnits)
+ private static QuantityInfo Create(
+ ResourceManager? unitAbbreviations = null,
+ Func>, IEnumerable>>? customizeUnits = null)
{
- return new AngleInfo(nameof(Angle), DefaultBaseUnit, customizeUnits(GetDefaultMappings()), new Angle(0, DefaultBaseUnit), DefaultBaseDimensions);
+ IEnumerable> unitMappings = AngleInfo.GetDefaultMappings();
+ if (customizeUnits != null)
+ unitMappings = customizeUnits(unitMappings);
+
+ return new QuantityInfo(
+ name: nameof(Angle),
+ baseUnit: DefaultBaseUnit,
+ unitMappings: unitMappings,
+ zero: new Angle(0, DefaultBaseUnit),
+ baseDimensions: DefaultBaseDimensions,
+ fromDelegate: From,
+ registerUnitConversions: RegisterDefaultConversions,
+ unitAbbreviations ?? DefaultUnitAbbreviations);
}
///
/// The for is .
///
- public static BaseDimensions DefaultBaseDimensions { get; } = BaseDimensions.Dimensionless;
+ private static BaseDimensions DefaultBaseDimensions { get; } = BaseDimensions.Dimensionless;
///
/// The default base unit of Angle is Radian. All conversions, as defined in the , go via this value.
///
- public static AngleUnit DefaultBaseUnit { get; } = AngleUnit.Radian;
+ private static AngleUnit DefaultBaseUnit { get; } = AngleUnit.Radian;
+
+ ///
+ /// The default resource manager for unit abbreviations of the Angle quantity.
+ ///
+ private static ResourceManager DefaultUnitAbbreviations { get; } = new("UnitsNet.GeneratedCode.Resources.Angle", typeof(Angle).Assembly);
///
/// Retrieves the default mappings for .
///
/// An of representing the default unit mappings for Angle.
- public static IEnumerable> GetDefaultMappings()
+ private static IEnumerable> GetDefaultMappings()
{
yield return new (AngleUnit.Arcminute, "Arcminute", "Arcminutes", BaseUnits.Undefined);
yield return new (AngleUnit.Arcsecond, "Arcsecond", "Arcseconds", BaseUnits.Undefined);
@@ -141,7 +141,7 @@ public static IEnumerable> GetDefaultMappings()
static Angle()
{
- Info = AngleInfo.CreateDefault();
+ Info = AngleInfo.Create();
DefaultConversionFunctions = new UnitConverter();
RegisterDefaultConversions(DefaultConversionFunctions);
}
diff --git a/UnitsNet/GeneratedCode/Quantities/Area.g.cs b/UnitsNet/GeneratedCode/Quantities/Area.g.cs
index 24fde31e8b..304e137381 100644
--- a/UnitsNet/GeneratedCode/Quantities/Area.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/Area.g.cs
@@ -80,59 +80,59 @@ namespace UnitsNet
///
/// Provides detailed information about the quantity, including its name, base unit, unit mappings, base dimensions, and conversion functions.
///
- public sealed class AreaInfo: QuantityInfo
+ private static class AreaInfo
{
- ///
- public AreaInfo(string name, AreaUnit baseUnit, IEnumerable> unitMappings, Area zero, BaseDimensions baseDimensions,
- QuantityFromDelegate fromDelegate, ResourceManager? unitAbbreviations)
- : base(name, baseUnit, unitMappings, zero, baseDimensions, fromDelegate, Area.RegisterDefaultConversions, unitAbbreviations)
- {
- }
-
- ///
- public AreaInfo(string name, AreaUnit baseUnit, IEnumerable> unitMappings, Area zero, BaseDimensions baseDimensions)
- : this(name, baseUnit, unitMappings, zero, baseDimensions, Area.From, new ResourceManager("UnitsNet.GeneratedCode.Resources.Area", typeof(Area).Assembly))
- {
- }
-
- ///
- /// Creates a new instance of the class with the default settings for the Area quantity.
- ///
- /// A new instance of the class with the default settings.
- public static AreaInfo CreateDefault()
- {
- return new AreaInfo(nameof(Area), DefaultBaseUnit, GetDefaultMappings(), new Area(0, DefaultBaseUnit), DefaultBaseDimensions);
- }
-
///
/// Creates a new instance of the class with the default settings for the Area quantity and a callback for customizing the default unit mappings.
///
+ ///
+ /// When provided, the resource manager used for localizing the quantity's unit abbreviations. Defaults to the built-in abbreviations.
+ ///
///
- /// A callback function for customizing the default unit mappings.
+ /// Optionally add, replace or remove unit definitions from the default set of units.
///
///
/// A new instance of the class with the default settings.
///
- public static AreaInfo CreateDefault(Func>, IEnumerable>> customizeUnits)
+ private static QuantityInfo Create(
+ ResourceManager? unitAbbreviations = null,
+ Func>, IEnumerable>>? customizeUnits = null)
{
- return new AreaInfo(nameof(Area), DefaultBaseUnit, customizeUnits(GetDefaultMappings()), new Area(0, DefaultBaseUnit), DefaultBaseDimensions);
+ IEnumerable> unitMappings = AreaInfo.GetDefaultMappings();
+ if (customizeUnits != null)
+ unitMappings = customizeUnits(unitMappings);
+
+ return new QuantityInfo(
+ name: nameof(Area),
+ baseUnit: DefaultBaseUnit,
+ unitMappings: unitMappings,
+ zero: new Area(0, DefaultBaseUnit),
+ baseDimensions: DefaultBaseDimensions,
+ fromDelegate: From,
+ registerUnitConversions: RegisterDefaultConversions,
+ unitAbbreviations ?? DefaultUnitAbbreviations);
}
///
/// The for is [L^2].
///
- public static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(2, 0, 0, 0, 0, 0, 0);
+ private static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(2, 0, 0, 0, 0, 0, 0);
///
/// The default base unit of Area is SquareMeter. All conversions, as defined in the , go via this value.
///
- public static AreaUnit DefaultBaseUnit { get; } = AreaUnit.SquareMeter;
+ private static AreaUnit DefaultBaseUnit { get; } = AreaUnit.SquareMeter;
+
+ ///
+ /// The default resource manager for unit abbreviations of the Area quantity.
+ ///
+ private static ResourceManager DefaultUnitAbbreviations { get; } = new("UnitsNet.GeneratedCode.Resources.Area", typeof(Area).Assembly);
///
/// Retrieves the default mappings for .
///
/// An of representing the default unit mappings for Area.
- public static IEnumerable> GetDefaultMappings()
+ private static IEnumerable> GetDefaultMappings()
{
yield return new (AreaUnit.Acre, "Acre", "Acres", BaseUnits.Undefined);
yield return new (AreaUnit.Hectare, "Hectare", "Hectares", BaseUnits.Undefined);
@@ -153,7 +153,7 @@ public static IEnumerable> GetDefaultMappings()
static Area()
{
- Info = AreaInfo.CreateDefault();
+ Info = AreaInfo.Create();
DefaultConversionFunctions = new UnitConverter();
RegisterDefaultConversions(DefaultConversionFunctions);
}
diff --git a/UnitsNet/GeneratedCode/Quantities/AreaDensity.g.cs b/UnitsNet/GeneratedCode/Quantities/AreaDensity.g.cs
index e24c9123f7..0d93e0f4af 100644
--- a/UnitsNet/GeneratedCode/Quantities/AreaDensity.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/AreaDensity.g.cs
@@ -65,59 +65,59 @@ namespace UnitsNet
///
/// Provides detailed information about the quantity, including its name, base unit, unit mappings, base dimensions, and conversion functions.
///
- public sealed class AreaDensityInfo: QuantityInfo
+ private static class AreaDensityInfo
{
- ///
- public AreaDensityInfo(string name, AreaDensityUnit baseUnit, IEnumerable> unitMappings, AreaDensity zero, BaseDimensions baseDimensions,
- QuantityFromDelegate fromDelegate, ResourceManager? unitAbbreviations)
- : base(name, baseUnit, unitMappings, zero, baseDimensions, fromDelegate, AreaDensity.RegisterDefaultConversions, unitAbbreviations)
- {
- }
-
- ///
- public AreaDensityInfo(string name, AreaDensityUnit baseUnit, IEnumerable> unitMappings, AreaDensity zero, BaseDimensions baseDimensions)
- : this(name, baseUnit, unitMappings, zero, baseDimensions, AreaDensity.From, new ResourceManager("UnitsNet.GeneratedCode.Resources.AreaDensity", typeof(AreaDensity).Assembly))
- {
- }
-
- ///
- /// Creates a new instance of the class with the default settings for the AreaDensity quantity.
- ///
- /// A new instance of the class with the default settings.
- public static AreaDensityInfo CreateDefault()
- {
- return new AreaDensityInfo(nameof(AreaDensity), DefaultBaseUnit, GetDefaultMappings(), new AreaDensity(0, DefaultBaseUnit), DefaultBaseDimensions);
- }
-
///
/// Creates a new instance of the class with the default settings for the AreaDensity quantity and a callback for customizing the default unit mappings.
///
+ ///
+ /// When provided, the resource manager used for localizing the quantity's unit abbreviations. Defaults to the built-in abbreviations.
+ ///
///
- /// A callback function for customizing the default unit mappings.
+ /// Optionally add, replace or remove unit definitions from the default set of units.
///
///
/// A new instance of the class with the default settings.
///
- public static AreaDensityInfo CreateDefault(Func>, IEnumerable>> customizeUnits)
+ private static QuantityInfo Create(
+ ResourceManager? unitAbbreviations = null,
+ Func>, IEnumerable>>? customizeUnits = null)
{
- return new AreaDensityInfo(nameof(AreaDensity), DefaultBaseUnit, customizeUnits(GetDefaultMappings()), new AreaDensity(0, DefaultBaseUnit), DefaultBaseDimensions);
+ IEnumerable> unitMappings = AreaDensityInfo.GetDefaultMappings();
+ if (customizeUnits != null)
+ unitMappings = customizeUnits(unitMappings);
+
+ return new QuantityInfo(
+ name: nameof(AreaDensity),
+ baseUnit: DefaultBaseUnit,
+ unitMappings: unitMappings,
+ zero: new AreaDensity(0, DefaultBaseUnit),
+ baseDimensions: DefaultBaseDimensions,
+ fromDelegate: From,
+ registerUnitConversions: RegisterDefaultConversions,
+ unitAbbreviations ?? DefaultUnitAbbreviations);
}
///
/// The for is [L^-2][M].
///
- public static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(-2, 1, 0, 0, 0, 0, 0);
+ private static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(-2, 1, 0, 0, 0, 0, 0);
///
/// The default base unit of AreaDensity is KilogramPerSquareMeter. All conversions, as defined in the , go via this value.
///
- public static AreaDensityUnit DefaultBaseUnit { get; } = AreaDensityUnit.KilogramPerSquareMeter;
+ private static AreaDensityUnit DefaultBaseUnit { get; } = AreaDensityUnit.KilogramPerSquareMeter;
+
+ ///
+ /// The default resource manager for unit abbreviations of the AreaDensity quantity.
+ ///
+ private static ResourceManager DefaultUnitAbbreviations { get; } = new("UnitsNet.GeneratedCode.Resources.AreaDensity", typeof(AreaDensity).Assembly);
///
/// Retrieves the default mappings for .
///
/// An of representing the default unit mappings for AreaDensity.
- public static IEnumerable> GetDefaultMappings()
+ private static IEnumerable> GetDefaultMappings()
{
yield return new (AreaDensityUnit.GramPerSquareMeter, "GramPerSquareMeter", "GramsPerSquareMeter", new BaseUnits(length: LengthUnit.Meter, mass: MassUnit.Gram));
yield return new (AreaDensityUnit.KilogramPerSquareMeter, "KilogramPerSquareMeter", "KilogramsPerSquareMeter", new BaseUnits(length: LengthUnit.Meter, mass: MassUnit.Kilogram));
@@ -127,7 +127,7 @@ public static IEnumerable> GetDefaultMappings()
static AreaDensity()
{
- Info = AreaDensityInfo.CreateDefault();
+ Info = AreaDensityInfo.Create();
DefaultConversionFunctions = new UnitConverter();
RegisterDefaultConversions(DefaultConversionFunctions);
}
diff --git a/UnitsNet/GeneratedCode/Quantities/AreaMomentOfInertia.g.cs b/UnitsNet/GeneratedCode/Quantities/AreaMomentOfInertia.g.cs
index efeb3d35b7..9ff9da5be8 100644
--- a/UnitsNet/GeneratedCode/Quantities/AreaMomentOfInertia.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/AreaMomentOfInertia.g.cs
@@ -66,59 +66,59 @@ namespace UnitsNet
///
/// Provides detailed information about the quantity, including its name, base unit, unit mappings, base dimensions, and conversion functions.
///
- public sealed class AreaMomentOfInertiaInfo: QuantityInfo
+ private static class AreaMomentOfInertiaInfo
{
- ///
- public AreaMomentOfInertiaInfo(string name, AreaMomentOfInertiaUnit baseUnit, IEnumerable> unitMappings, AreaMomentOfInertia zero, BaseDimensions baseDimensions,
- QuantityFromDelegate fromDelegate, ResourceManager? unitAbbreviations)
- : base(name, baseUnit, unitMappings, zero, baseDimensions, fromDelegate, AreaMomentOfInertia.RegisterDefaultConversions, unitAbbreviations)
- {
- }
-
- ///
- public AreaMomentOfInertiaInfo(string name, AreaMomentOfInertiaUnit baseUnit, IEnumerable> unitMappings, AreaMomentOfInertia zero, BaseDimensions baseDimensions)
- : this(name, baseUnit, unitMappings, zero, baseDimensions, AreaMomentOfInertia.From, new ResourceManager("UnitsNet.GeneratedCode.Resources.AreaMomentOfInertia", typeof(AreaMomentOfInertia).Assembly))
- {
- }
-
- ///
- /// Creates a new instance of the class with the default settings for the AreaMomentOfInertia quantity.
- ///
- /// A new instance of the class with the default settings.
- public static AreaMomentOfInertiaInfo CreateDefault()
- {
- return new AreaMomentOfInertiaInfo(nameof(AreaMomentOfInertia), DefaultBaseUnit, GetDefaultMappings(), new AreaMomentOfInertia(0, DefaultBaseUnit), DefaultBaseDimensions);
- }
-
///
/// Creates a new instance of the class with the default settings for the AreaMomentOfInertia quantity and a callback for customizing the default unit mappings.
///
+ ///
+ /// When provided, the resource manager used for localizing the quantity's unit abbreviations. Defaults to the built-in abbreviations.
+ ///
///
- /// A callback function for customizing the default unit mappings.
+ /// Optionally add, replace or remove unit definitions from the default set of units.
///
///
/// A new instance of the class with the default settings.
///
- public static AreaMomentOfInertiaInfo CreateDefault(Func>, IEnumerable>> customizeUnits)
+ private static QuantityInfo Create(
+ ResourceManager? unitAbbreviations = null,
+ Func>, IEnumerable>>? customizeUnits = null)
{
- return new AreaMomentOfInertiaInfo(nameof(AreaMomentOfInertia), DefaultBaseUnit, customizeUnits(GetDefaultMappings()), new AreaMomentOfInertia(0, DefaultBaseUnit), DefaultBaseDimensions);
+ IEnumerable> unitMappings = AreaMomentOfInertiaInfo.GetDefaultMappings();
+ if (customizeUnits != null)
+ unitMappings = customizeUnits(unitMappings);
+
+ return new QuantityInfo(
+ name: nameof(AreaMomentOfInertia),
+ baseUnit: DefaultBaseUnit,
+ unitMappings: unitMappings,
+ zero: new AreaMomentOfInertia(0, DefaultBaseUnit),
+ baseDimensions: DefaultBaseDimensions,
+ fromDelegate: From,
+ registerUnitConversions: RegisterDefaultConversions,
+ unitAbbreviations ?? DefaultUnitAbbreviations);
}
///
/// The for is [L^4].
///
- public static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(4, 0, 0, 0, 0, 0, 0);
+ private static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(4, 0, 0, 0, 0, 0, 0);
///
/// The default base unit of AreaMomentOfInertia is MeterToTheFourth. All conversions, as defined in the , go via this value.
///
- public static AreaMomentOfInertiaUnit DefaultBaseUnit { get; } = AreaMomentOfInertiaUnit.MeterToTheFourth;
+ private static AreaMomentOfInertiaUnit DefaultBaseUnit { get; } = AreaMomentOfInertiaUnit.MeterToTheFourth;
+
+ ///
+ /// The default resource manager for unit abbreviations of the AreaMomentOfInertia quantity.
+ ///
+ private static ResourceManager DefaultUnitAbbreviations { get; } = new("UnitsNet.GeneratedCode.Resources.AreaMomentOfInertia", typeof(AreaMomentOfInertia).Assembly);
///
/// Retrieves the default mappings for .
///
/// An of representing the default unit mappings for AreaMomentOfInertia.
- public static IEnumerable> GetDefaultMappings()
+ private static IEnumerable> GetDefaultMappings()
{
yield return new (AreaMomentOfInertiaUnit.CentimeterToTheFourth, "CentimeterToTheFourth", "CentimetersToTheFourth", new BaseUnits(length: LengthUnit.Centimeter));
yield return new (AreaMomentOfInertiaUnit.DecimeterToTheFourth, "DecimeterToTheFourth", "DecimetersToTheFourth", new BaseUnits(length: LengthUnit.Decimeter));
@@ -131,7 +131,7 @@ public static IEnumerable> GetDefaultMap
static AreaMomentOfInertia()
{
- Info = AreaMomentOfInertiaInfo.CreateDefault();
+ Info = AreaMomentOfInertiaInfo.Create();
DefaultConversionFunctions = new UnitConverter();
RegisterDefaultConversions(DefaultConversionFunctions);
}
diff --git a/UnitsNet/GeneratedCode/Quantities/BitRate.g.cs b/UnitsNet/GeneratedCode/Quantities/BitRate.g.cs
index 8fdf7928b1..2833f2a4eb 100644
--- a/UnitsNet/GeneratedCode/Quantities/BitRate.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/BitRate.g.cs
@@ -65,59 +65,59 @@ namespace UnitsNet
///
/// Provides detailed information about the quantity, including its name, base unit, unit mappings, base dimensions, and conversion functions.
///
- public sealed class BitRateInfo: QuantityInfo
+ private static class BitRateInfo
{
- ///
- public BitRateInfo(string name, BitRateUnit baseUnit, IEnumerable> unitMappings, BitRate zero, BaseDimensions baseDimensions,
- QuantityFromDelegate fromDelegate, ResourceManager? unitAbbreviations)
- : base(name, baseUnit, unitMappings, zero, baseDimensions, fromDelegate, BitRate.RegisterDefaultConversions, unitAbbreviations)
- {
- }
-
- ///
- public BitRateInfo(string name, BitRateUnit baseUnit, IEnumerable> unitMappings, BitRate zero, BaseDimensions baseDimensions)
- : this(name, baseUnit, unitMappings, zero, baseDimensions, BitRate.From, new ResourceManager("UnitsNet.GeneratedCode.Resources.BitRate", typeof(BitRate).Assembly))
- {
- }
-
- ///
- /// Creates a new instance of the class with the default settings for the BitRate quantity.
- ///
- /// A new instance of the class with the default settings.
- public static BitRateInfo CreateDefault()
- {
- return new BitRateInfo(nameof(BitRate), DefaultBaseUnit, GetDefaultMappings(), new BitRate(0, DefaultBaseUnit), DefaultBaseDimensions);
- }
-
///
/// Creates a new instance of the class with the default settings for the BitRate quantity and a callback for customizing the default unit mappings.
///
+ ///
+ /// When provided, the resource manager used for localizing the quantity's unit abbreviations. Defaults to the built-in abbreviations.
+ ///
///
- /// A callback function for customizing the default unit mappings.
+ /// Optionally add, replace or remove unit definitions from the default set of units.
///
///
/// A new instance of the class with the default settings.
///
- public static BitRateInfo CreateDefault(Func>, IEnumerable>> customizeUnits)
+ private static QuantityInfo Create(
+ ResourceManager? unitAbbreviations = null,
+ Func>, IEnumerable>>? customizeUnits = null)
{
- return new BitRateInfo(nameof(BitRate), DefaultBaseUnit, customizeUnits(GetDefaultMappings()), new BitRate(0, DefaultBaseUnit), DefaultBaseDimensions);
+ IEnumerable> unitMappings = BitRateInfo.GetDefaultMappings();
+ if (customizeUnits != null)
+ unitMappings = customizeUnits(unitMappings);
+
+ return new QuantityInfo(
+ name: nameof(BitRate),
+ baseUnit: DefaultBaseUnit,
+ unitMappings: unitMappings,
+ zero: new BitRate(0, DefaultBaseUnit),
+ baseDimensions: DefaultBaseDimensions,
+ fromDelegate: From,
+ registerUnitConversions: RegisterDefaultConversions,
+ unitAbbreviations ?? DefaultUnitAbbreviations);
}
///
/// The for is [T^-1].
///
- public static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(0, 0, -1, 0, 0, 0, 0);
+ private static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(0, 0, -1, 0, 0, 0, 0);
///
/// The default base unit of BitRate is BitPerSecond. All conversions, as defined in the , go via this value.
///
- public static BitRateUnit DefaultBaseUnit { get; } = BitRateUnit.BitPerSecond;
+ private static BitRateUnit DefaultBaseUnit { get; } = BitRateUnit.BitPerSecond;
+
+ ///
+ /// The default resource manager for unit abbreviations of the BitRate quantity.
+ ///
+ private static ResourceManager DefaultUnitAbbreviations { get; } = new("UnitsNet.GeneratedCode.Resources.BitRate", typeof(BitRate).Assembly);
///
/// Retrieves the default mappings for .
///
/// An of representing the default unit mappings for BitRate.
- public static IEnumerable> GetDefaultMappings()
+ private static IEnumerable> GetDefaultMappings()
{
yield return new (BitRateUnit.BitPerSecond, "BitPerSecond", "BitsPerSecond", new BaseUnits(time: DurationUnit.Second));
yield return new (BitRateUnit.BytePerSecond, "BytePerSecond", "BytesPerSecond", BaseUnits.Undefined);
@@ -163,7 +163,7 @@ public static IEnumerable> GetDefaultMappings()
static BitRate()
{
- Info = BitRateInfo.CreateDefault();
+ Info = BitRateInfo.Create();
DefaultConversionFunctions = new UnitConverter();
RegisterDefaultConversions(DefaultConversionFunctions);
}
diff --git a/UnitsNet/GeneratedCode/Quantities/BrakeSpecificFuelConsumption.g.cs b/UnitsNet/GeneratedCode/Quantities/BrakeSpecificFuelConsumption.g.cs
index 2e50935bc8..265189d5fc 100644
--- a/UnitsNet/GeneratedCode/Quantities/BrakeSpecificFuelConsumption.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/BrakeSpecificFuelConsumption.g.cs
@@ -66,59 +66,59 @@ namespace UnitsNet
///
/// Provides detailed information about the quantity, including its name, base unit, unit mappings, base dimensions, and conversion functions.
///
- public sealed class BrakeSpecificFuelConsumptionInfo: QuantityInfo
+ private static class BrakeSpecificFuelConsumptionInfo
{
- ///
- public BrakeSpecificFuelConsumptionInfo(string name, BrakeSpecificFuelConsumptionUnit baseUnit, IEnumerable> unitMappings, BrakeSpecificFuelConsumption zero, BaseDimensions baseDimensions,
- QuantityFromDelegate fromDelegate, ResourceManager? unitAbbreviations)
- : base(name, baseUnit, unitMappings, zero, baseDimensions, fromDelegate, BrakeSpecificFuelConsumption.RegisterDefaultConversions, unitAbbreviations)
- {
- }
-
- ///
- public BrakeSpecificFuelConsumptionInfo(string name, BrakeSpecificFuelConsumptionUnit baseUnit, IEnumerable> unitMappings, BrakeSpecificFuelConsumption zero, BaseDimensions baseDimensions)
- : this(name, baseUnit, unitMappings, zero, baseDimensions, BrakeSpecificFuelConsumption.From, new ResourceManager("UnitsNet.GeneratedCode.Resources.BrakeSpecificFuelConsumption", typeof(BrakeSpecificFuelConsumption).Assembly))
- {
- }
-
- ///
- /// Creates a new instance of the class with the default settings for the BrakeSpecificFuelConsumption quantity.
- ///
- /// A new instance of the class with the default settings.
- public static BrakeSpecificFuelConsumptionInfo CreateDefault()
- {
- return new BrakeSpecificFuelConsumptionInfo(nameof(BrakeSpecificFuelConsumption), DefaultBaseUnit, GetDefaultMappings(), new BrakeSpecificFuelConsumption(0, DefaultBaseUnit), DefaultBaseDimensions);
- }
-
///
/// Creates a new instance of the class with the default settings for the BrakeSpecificFuelConsumption quantity and a callback for customizing the default unit mappings.
///
+ ///
+ /// When provided, the resource manager used for localizing the quantity's unit abbreviations. Defaults to the built-in abbreviations.
+ ///
///
- /// A callback function for customizing the default unit mappings.
+ /// Optionally add, replace or remove unit definitions from the default set of units.
///
///
/// A new instance of the class with the default settings.
///
- public static BrakeSpecificFuelConsumptionInfo CreateDefault(Func>, IEnumerable>> customizeUnits)
+ private static QuantityInfo Create(
+ ResourceManager? unitAbbreviations = null,
+ Func>, IEnumerable>>? customizeUnits = null)
{
- return new BrakeSpecificFuelConsumptionInfo(nameof(BrakeSpecificFuelConsumption), DefaultBaseUnit, customizeUnits(GetDefaultMappings()), new BrakeSpecificFuelConsumption(0, DefaultBaseUnit), DefaultBaseDimensions);
+ IEnumerable> unitMappings = BrakeSpecificFuelConsumptionInfo.GetDefaultMappings();
+ if (customizeUnits != null)
+ unitMappings = customizeUnits(unitMappings);
+
+ return new QuantityInfo(
+ name: nameof(BrakeSpecificFuelConsumption),
+ baseUnit: DefaultBaseUnit,
+ unitMappings: unitMappings,
+ zero: new BrakeSpecificFuelConsumption(0, DefaultBaseUnit),
+ baseDimensions: DefaultBaseDimensions,
+ fromDelegate: From,
+ registerUnitConversions: RegisterDefaultConversions,
+ unitAbbreviations ?? DefaultUnitAbbreviations);
}
///
/// The for is [T^2][L^-2].
///
- public static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(-2, 0, 2, 0, 0, 0, 0);
+ private static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(-2, 0, 2, 0, 0, 0, 0);
///
/// The default base unit of BrakeSpecificFuelConsumption is KilogramPerJoule. All conversions, as defined in the , go via this value.
///
- public static BrakeSpecificFuelConsumptionUnit DefaultBaseUnit { get; } = BrakeSpecificFuelConsumptionUnit.KilogramPerJoule;
+ private static BrakeSpecificFuelConsumptionUnit DefaultBaseUnit { get; } = BrakeSpecificFuelConsumptionUnit.KilogramPerJoule;
+
+ ///
+ /// The default resource manager for unit abbreviations of the BrakeSpecificFuelConsumption quantity.
+ ///
+ private static ResourceManager DefaultUnitAbbreviations { get; } = new("UnitsNet.GeneratedCode.Resources.BrakeSpecificFuelConsumption", typeof(BrakeSpecificFuelConsumption).Assembly);
///
/// Retrieves the default mappings for .
///
/// An of representing the default unit mappings for BrakeSpecificFuelConsumption.
- public static IEnumerable> GetDefaultMappings()
+ private static IEnumerable> GetDefaultMappings()
{
yield return new (BrakeSpecificFuelConsumptionUnit.GramPerKiloWattHour, "GramPerKiloWattHour", "GramsPerKiloWattHour", BaseUnits.Undefined);
yield return new (BrakeSpecificFuelConsumptionUnit.KilogramPerJoule, "KilogramPerJoule", "KilogramsPerJoule", new BaseUnits(length: LengthUnit.Meter, time: DurationUnit.Second));
@@ -128,7 +128,7 @@ public static IEnumerable> GetD
static BrakeSpecificFuelConsumption()
{
- Info = BrakeSpecificFuelConsumptionInfo.CreateDefault();
+ Info = BrakeSpecificFuelConsumptionInfo.Create();
DefaultConversionFunctions = new UnitConverter();
RegisterDefaultConversions(DefaultConversionFunctions);
}
diff --git a/UnitsNet/GeneratedCode/Quantities/CoefficientOfThermalExpansion.g.cs b/UnitsNet/GeneratedCode/Quantities/CoefficientOfThermalExpansion.g.cs
index 490de985e2..1383c1e40e 100644
--- a/UnitsNet/GeneratedCode/Quantities/CoefficientOfThermalExpansion.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/CoefficientOfThermalExpansion.g.cs
@@ -65,59 +65,59 @@ namespace UnitsNet
///
/// Provides detailed information about the quantity, including its name, base unit, unit mappings, base dimensions, and conversion functions.
///
- public sealed class CoefficientOfThermalExpansionInfo: QuantityInfo
+ private static class CoefficientOfThermalExpansionInfo
{
- ///
- public CoefficientOfThermalExpansionInfo(string name, CoefficientOfThermalExpansionUnit baseUnit, IEnumerable> unitMappings, CoefficientOfThermalExpansion zero, BaseDimensions baseDimensions,
- QuantityFromDelegate fromDelegate, ResourceManager? unitAbbreviations)
- : base(name, baseUnit, unitMappings, zero, baseDimensions, fromDelegate, CoefficientOfThermalExpansion.RegisterDefaultConversions, unitAbbreviations)
- {
- }
-
- ///
- public CoefficientOfThermalExpansionInfo(string name, CoefficientOfThermalExpansionUnit baseUnit, IEnumerable> unitMappings, CoefficientOfThermalExpansion zero, BaseDimensions baseDimensions)
- : this(name, baseUnit, unitMappings, zero, baseDimensions, CoefficientOfThermalExpansion.From, new ResourceManager("UnitsNet.GeneratedCode.Resources.CoefficientOfThermalExpansion", typeof(CoefficientOfThermalExpansion).Assembly))
- {
- }
-
- ///
- /// Creates a new instance of the class with the default settings for the CoefficientOfThermalExpansion quantity.
- ///
- /// A new instance of the class with the default settings.
- public static CoefficientOfThermalExpansionInfo CreateDefault()
- {
- return new CoefficientOfThermalExpansionInfo(nameof(CoefficientOfThermalExpansion), DefaultBaseUnit, GetDefaultMappings(), new CoefficientOfThermalExpansion(0, DefaultBaseUnit), DefaultBaseDimensions);
- }
-
///
/// Creates a new instance of the class with the default settings for the CoefficientOfThermalExpansion quantity and a callback for customizing the default unit mappings.
///
+ ///
+ /// When provided, the resource manager used for localizing the quantity's unit abbreviations. Defaults to the built-in abbreviations.
+ ///
///
- /// A callback function for customizing the default unit mappings.
+ /// Optionally add, replace or remove unit definitions from the default set of units.
///
///
/// A new instance of the class with the default settings.
///
- public static CoefficientOfThermalExpansionInfo CreateDefault(Func>, IEnumerable>> customizeUnits)
+ private static QuantityInfo Create(
+ ResourceManager? unitAbbreviations = null,
+ Func>, IEnumerable>>? customizeUnits = null)
{
- return new CoefficientOfThermalExpansionInfo(nameof(CoefficientOfThermalExpansion), DefaultBaseUnit, customizeUnits(GetDefaultMappings()), new CoefficientOfThermalExpansion(0, DefaultBaseUnit), DefaultBaseDimensions);
+ IEnumerable> unitMappings = CoefficientOfThermalExpansionInfo.GetDefaultMappings();
+ if (customizeUnits != null)
+ unitMappings = customizeUnits(unitMappings);
+
+ return new QuantityInfo(
+ name: nameof(CoefficientOfThermalExpansion),
+ baseUnit: DefaultBaseUnit,
+ unitMappings: unitMappings,
+ zero: new CoefficientOfThermalExpansion(0, DefaultBaseUnit),
+ baseDimensions: DefaultBaseDimensions,
+ fromDelegate: From,
+ registerUnitConversions: RegisterDefaultConversions,
+ unitAbbreviations ?? DefaultUnitAbbreviations);
}
///
/// The for is [Θ^-1].
///
- public static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(0, 0, 0, 0, -1, 0, 0);
+ private static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(0, 0, 0, 0, -1, 0, 0);
///
/// The default base unit of CoefficientOfThermalExpansion is PerKelvin. All conversions, as defined in the , go via this value.
///
- public static CoefficientOfThermalExpansionUnit DefaultBaseUnit { get; } = CoefficientOfThermalExpansionUnit.PerKelvin;
+ private static CoefficientOfThermalExpansionUnit DefaultBaseUnit { get; } = CoefficientOfThermalExpansionUnit.PerKelvin;
+
+ ///
+ /// The default resource manager for unit abbreviations of the CoefficientOfThermalExpansion quantity.
+ ///
+ private static ResourceManager DefaultUnitAbbreviations { get; } = new("UnitsNet.GeneratedCode.Resources.CoefficientOfThermalExpansion", typeof(CoefficientOfThermalExpansion).Assembly);
///
/// Retrieves the default mappings for .
///
/// An of representing the default unit mappings for CoefficientOfThermalExpansion.
- public static IEnumerable> GetDefaultMappings()
+ private static IEnumerable> GetDefaultMappings()
{
yield return new (CoefficientOfThermalExpansionUnit.PerDegreeCelsius, "PerDegreeCelsius", "PerDegreeCelsius", new BaseUnits(temperature: TemperatureUnit.DegreeCelsius));
yield return new (CoefficientOfThermalExpansionUnit.PerDegreeFahrenheit, "PerDegreeFahrenheit", "PerDegreeFahrenheit", new BaseUnits(temperature: TemperatureUnit.DegreeFahrenheit));
@@ -130,7 +130,7 @@ public static IEnumerable> Get
static CoefficientOfThermalExpansion()
{
- Info = CoefficientOfThermalExpansionInfo.CreateDefault();
+ Info = CoefficientOfThermalExpansionInfo.Create();
DefaultConversionFunctions = new UnitConverter();
RegisterDefaultConversions(DefaultConversionFunctions);
}
diff --git a/UnitsNet/GeneratedCode/Quantities/Compressibility.g.cs b/UnitsNet/GeneratedCode/Quantities/Compressibility.g.cs
index c89d1dd991..8bb135aeb3 100644
--- a/UnitsNet/GeneratedCode/Quantities/Compressibility.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/Compressibility.g.cs
@@ -62,59 +62,59 @@ namespace UnitsNet
///
/// Provides detailed information about the quantity, including its name, base unit, unit mappings, base dimensions, and conversion functions.
///
- public sealed class CompressibilityInfo: QuantityInfo
+ private static class CompressibilityInfo
{
- ///
- public CompressibilityInfo(string name, CompressibilityUnit baseUnit, IEnumerable> unitMappings, Compressibility zero, BaseDimensions baseDimensions,
- QuantityFromDelegate fromDelegate, ResourceManager? unitAbbreviations)
- : base(name, baseUnit, unitMappings, zero, baseDimensions, fromDelegate, Compressibility.RegisterDefaultConversions, unitAbbreviations)
- {
- }
-
- ///
- public CompressibilityInfo(string name, CompressibilityUnit baseUnit, IEnumerable> unitMappings, Compressibility zero, BaseDimensions baseDimensions)
- : this(name, baseUnit, unitMappings, zero, baseDimensions, Compressibility.From, new ResourceManager("UnitsNet.GeneratedCode.Resources.Compressibility", typeof(Compressibility).Assembly))
- {
- }
-
- ///
- /// Creates a new instance of the class with the default settings for the Compressibility quantity.
- ///
- /// A new instance of the class with the default settings.
- public static CompressibilityInfo CreateDefault()
- {
- return new CompressibilityInfo(nameof(Compressibility), DefaultBaseUnit, GetDefaultMappings(), new Compressibility(0, DefaultBaseUnit), DefaultBaseDimensions);
- }
-
///
/// Creates a new instance of the class with the default settings for the Compressibility quantity and a callback for customizing the default unit mappings.
///
+ ///
+ /// When provided, the resource manager used for localizing the quantity's unit abbreviations. Defaults to the built-in abbreviations.
+ ///
///
- /// A callback function for customizing the default unit mappings.
+ /// Optionally add, replace or remove unit definitions from the default set of units.
///
///
/// A new instance of the class with the default settings.
///
- public static CompressibilityInfo CreateDefault(Func>, IEnumerable>> customizeUnits)
+ private static QuantityInfo Create(
+ ResourceManager? unitAbbreviations = null,
+ Func>, IEnumerable>>? customizeUnits = null)
{
- return new CompressibilityInfo(nameof(Compressibility), DefaultBaseUnit, customizeUnits(GetDefaultMappings()), new Compressibility(0, DefaultBaseUnit), DefaultBaseDimensions);
+ IEnumerable> unitMappings = CompressibilityInfo.GetDefaultMappings();
+ if (customizeUnits != null)
+ unitMappings = customizeUnits(unitMappings);
+
+ return new QuantityInfo(
+ name: nameof(Compressibility),
+ baseUnit: DefaultBaseUnit,
+ unitMappings: unitMappings,
+ zero: new Compressibility(0, DefaultBaseUnit),
+ baseDimensions: DefaultBaseDimensions,
+ fromDelegate: From,
+ registerUnitConversions: RegisterDefaultConversions,
+ unitAbbreviations ?? DefaultUnitAbbreviations);
}
///
/// The for is [T^2][L][M^-1].
///
- public static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(1, -1, 2, 0, 0, 0, 0);
+ private static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(1, -1, 2, 0, 0, 0, 0);
///
/// The default base unit of Compressibility is InversePascal. All conversions, as defined in the , go via this value.
///
- public static CompressibilityUnit DefaultBaseUnit { get; } = CompressibilityUnit.InversePascal;
+ private static CompressibilityUnit DefaultBaseUnit { get; } = CompressibilityUnit.InversePascal;
+
+ ///
+ /// The default resource manager for unit abbreviations of the Compressibility quantity.
+ ///
+ private static ResourceManager DefaultUnitAbbreviations { get; } = new("UnitsNet.GeneratedCode.Resources.Compressibility", typeof(Compressibility).Assembly);
///
/// Retrieves the default mappings for .
///
/// An of representing the default unit mappings for Compressibility.
- public static IEnumerable> GetDefaultMappings()
+ private static IEnumerable> GetDefaultMappings()
{
yield return new (CompressibilityUnit.InverseAtmosphere, "InverseAtmosphere", "InverseAtmospheres", BaseUnits.Undefined);
yield return new (CompressibilityUnit.InverseBar, "InverseBar", "InverseBars", BaseUnits.Undefined);
@@ -128,7 +128,7 @@ public static IEnumerable> GetDefaultMapping
static Compressibility()
{
- Info = CompressibilityInfo.CreateDefault();
+ Info = CompressibilityInfo.Create();
DefaultConversionFunctions = new UnitConverter();
RegisterDefaultConversions(DefaultConversionFunctions);
}
diff --git a/UnitsNet/GeneratedCode/Quantities/Density.g.cs b/UnitsNet/GeneratedCode/Quantities/Density.g.cs
index aeb587fe24..f4f95b95dd 100644
--- a/UnitsNet/GeneratedCode/Quantities/Density.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/Density.g.cs
@@ -74,59 +74,59 @@ namespace UnitsNet
///
/// Provides detailed information about the quantity, including its name, base unit, unit mappings, base dimensions, and conversion functions.
///
- public sealed class DensityInfo: QuantityInfo
+ private static class DensityInfo
{
- ///
- public DensityInfo(string name, DensityUnit baseUnit, IEnumerable> unitMappings, Density zero, BaseDimensions baseDimensions,
- QuantityFromDelegate fromDelegate, ResourceManager? unitAbbreviations)
- : base(name, baseUnit, unitMappings, zero, baseDimensions, fromDelegate, Density.RegisterDefaultConversions, unitAbbreviations)
- {
- }
-
- ///
- public DensityInfo(string name, DensityUnit baseUnit, IEnumerable> unitMappings, Density zero, BaseDimensions baseDimensions)
- : this(name, baseUnit, unitMappings, zero, baseDimensions, Density.From, new ResourceManager("UnitsNet.GeneratedCode.Resources.Density", typeof(Density).Assembly))
- {
- }
-
- ///
- /// Creates a new instance of the class with the default settings for the Density quantity.
- ///
- /// A new instance of the class with the default settings.
- public static DensityInfo CreateDefault()
- {
- return new DensityInfo(nameof(Density), DefaultBaseUnit, GetDefaultMappings(), new Density(0, DefaultBaseUnit), DefaultBaseDimensions);
- }
-
///
/// Creates a new instance of the class with the default settings for the Density quantity and a callback for customizing the default unit mappings.
///
+ ///
+ /// When provided, the resource manager used for localizing the quantity's unit abbreviations. Defaults to the built-in abbreviations.
+ ///
///
- /// A callback function for customizing the default unit mappings.
+ /// Optionally add, replace or remove unit definitions from the default set of units.
///
///
/// A new instance of the class with the default settings.
///
- public static DensityInfo CreateDefault(Func>, IEnumerable>> customizeUnits)
+ private static QuantityInfo Create(
+ ResourceManager? unitAbbreviations = null,
+ Func>, IEnumerable>>? customizeUnits = null)
{
- return new DensityInfo(nameof(Density), DefaultBaseUnit, customizeUnits(GetDefaultMappings()), new Density(0, DefaultBaseUnit), DefaultBaseDimensions);
+ IEnumerable> unitMappings = DensityInfo.GetDefaultMappings();
+ if (customizeUnits != null)
+ unitMappings = customizeUnits(unitMappings);
+
+ return new QuantityInfo(
+ name: nameof(Density),
+ baseUnit: DefaultBaseUnit,
+ unitMappings: unitMappings,
+ zero: new Density(0, DefaultBaseUnit),
+ baseDimensions: DefaultBaseDimensions,
+ fromDelegate: From,
+ registerUnitConversions: RegisterDefaultConversions,
+ unitAbbreviations ?? DefaultUnitAbbreviations);
}
///
/// The for is [L^-3][M].
///
- public static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(-3, 1, 0, 0, 0, 0, 0);
+ private static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(-3, 1, 0, 0, 0, 0, 0);
///
/// The default base unit of Density is KilogramPerCubicMeter. All conversions, as defined in the , go via this value.
///
- public static DensityUnit DefaultBaseUnit { get; } = DensityUnit.KilogramPerCubicMeter;
+ private static DensityUnit DefaultBaseUnit { get; } = DensityUnit.KilogramPerCubicMeter;
+
+ ///
+ /// The default resource manager for unit abbreviations of the Density quantity.
+ ///
+ private static ResourceManager DefaultUnitAbbreviations { get; } = new("UnitsNet.GeneratedCode.Resources.Density", typeof(Density).Assembly);
///
/// Retrieves the default mappings for .
///
/// An of representing the default unit mappings for Density.
- public static IEnumerable> GetDefaultMappings()
+ private static IEnumerable> GetDefaultMappings()
{
yield return new (DensityUnit.CentigramPerDeciliter, "CentigramPerDeciliter", "CentigramsPerDeciliter", BaseUnits.Undefined);
yield return new (DensityUnit.CentigramPerLiter, "CentigramPerLiter", "CentigramsPerLiter", new BaseUnits(length: LengthUnit.Decimeter, mass: MassUnit.Centigram));
@@ -189,7 +189,7 @@ public static IEnumerable> GetDefaultMappings()
static Density()
{
- Info = DensityInfo.CreateDefault();
+ Info = DensityInfo.Create();
DefaultConversionFunctions = new UnitConverter();
RegisterDefaultConversions(DefaultConversionFunctions);
}
diff --git a/UnitsNet/GeneratedCode/Quantities/DoseAreaProduct.g.cs b/UnitsNet/GeneratedCode/Quantities/DoseAreaProduct.g.cs
index 20b74574c9..d8afb47dd8 100644
--- a/UnitsNet/GeneratedCode/Quantities/DoseAreaProduct.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/DoseAreaProduct.g.cs
@@ -65,59 +65,59 @@ namespace UnitsNet
///
/// Provides detailed information about the quantity, including its name, base unit, unit mappings, base dimensions, and conversion functions.
///
- public sealed class DoseAreaProductInfo: QuantityInfo
+ private static class DoseAreaProductInfo
{
- ///
- public DoseAreaProductInfo(string name, DoseAreaProductUnit baseUnit, IEnumerable> unitMappings, DoseAreaProduct zero, BaseDimensions baseDimensions,
- QuantityFromDelegate fromDelegate, ResourceManager? unitAbbreviations)
- : base(name, baseUnit, unitMappings, zero, baseDimensions, fromDelegate, DoseAreaProduct.RegisterDefaultConversions, unitAbbreviations)
- {
- }
-
- ///
- public DoseAreaProductInfo(string name, DoseAreaProductUnit baseUnit, IEnumerable> unitMappings, DoseAreaProduct zero, BaseDimensions baseDimensions)
- : this(name, baseUnit, unitMappings, zero, baseDimensions, DoseAreaProduct.From, new ResourceManager("UnitsNet.GeneratedCode.Resources.DoseAreaProduct", typeof(DoseAreaProduct).Assembly))
- {
- }
-
- ///
- /// Creates a new instance of the class with the default settings for the DoseAreaProduct quantity.
- ///
- /// A new instance of the class with the default settings.
- public static DoseAreaProductInfo CreateDefault()
- {
- return new DoseAreaProductInfo(nameof(DoseAreaProduct), DefaultBaseUnit, GetDefaultMappings(), new DoseAreaProduct(0, DefaultBaseUnit), DefaultBaseDimensions);
- }
-
///
/// Creates a new instance of the class with the default settings for the DoseAreaProduct quantity and a callback for customizing the default unit mappings.
///
+ ///
+ /// When provided, the resource manager used for localizing the quantity's unit abbreviations. Defaults to the built-in abbreviations.
+ ///
///
- /// A callback function for customizing the default unit mappings.
+ /// Optionally add, replace or remove unit definitions from the default set of units.
///
///
/// A new instance of the class with the default settings.
///
- public static DoseAreaProductInfo CreateDefault(Func>, IEnumerable>> customizeUnits)
+ private static QuantityInfo Create(
+ ResourceManager? unitAbbreviations = null,
+ Func>, IEnumerable>>? customizeUnits = null)
{
- return new DoseAreaProductInfo(nameof(DoseAreaProduct), DefaultBaseUnit, customizeUnits(GetDefaultMappings()), new DoseAreaProduct(0, DefaultBaseUnit), DefaultBaseDimensions);
+ IEnumerable> unitMappings = DoseAreaProductInfo.GetDefaultMappings();
+ if (customizeUnits != null)
+ unitMappings = customizeUnits(unitMappings);
+
+ return new QuantityInfo(
+ name: nameof(DoseAreaProduct),
+ baseUnit: DefaultBaseUnit,
+ unitMappings: unitMappings,
+ zero: new DoseAreaProduct(0, DefaultBaseUnit),
+ baseDimensions: DefaultBaseDimensions,
+ fromDelegate: From,
+ registerUnitConversions: RegisterDefaultConversions,
+ unitAbbreviations ?? DefaultUnitAbbreviations);
}
///
/// The for is [T^-2][L^4].
///
- public static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(4, 0, -2, 0, 0, 0, 0);
+ private static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(4, 0, -2, 0, 0, 0, 0);
///
/// The default base unit of DoseAreaProduct is GraySquareMeter. All conversions, as defined in the , go via this value.
///
- public static DoseAreaProductUnit DefaultBaseUnit { get; } = DoseAreaProductUnit.GraySquareMeter;
+ private static DoseAreaProductUnit DefaultBaseUnit { get; } = DoseAreaProductUnit.GraySquareMeter;
+
+ ///
+ /// The default resource manager for unit abbreviations of the DoseAreaProduct quantity.
+ ///
+ private static ResourceManager DefaultUnitAbbreviations { get; } = new("UnitsNet.GeneratedCode.Resources.DoseAreaProduct", typeof(DoseAreaProduct).Assembly);
///
/// Retrieves the default mappings for .
///
/// An of representing the default unit mappings for DoseAreaProduct.
- public static IEnumerable> GetDefaultMappings()
+ private static IEnumerable> GetDefaultMappings()
{
yield return new (DoseAreaProductUnit.CentigraySquareCentimeter, "CentigraySquareCentimeter", "CentigraySquareCentimeters", BaseUnits.Undefined);
yield return new (DoseAreaProductUnit.CentigraySquareDecimeter, "CentigraySquareDecimeter", "CentigraySquareDecimeters", BaseUnits.Undefined);
@@ -144,7 +144,7 @@ public static IEnumerable> GetDefaultMapping
static DoseAreaProduct()
{
- Info = DoseAreaProductInfo.CreateDefault();
+ Info = DoseAreaProductInfo.Create();
DefaultConversionFunctions = new UnitConverter();
RegisterDefaultConversions(DefaultConversionFunctions);
}
diff --git a/UnitsNet/GeneratedCode/Quantities/Duration.g.cs b/UnitsNet/GeneratedCode/Quantities/Duration.g.cs
index 5e3cf9043d..e4405c4fe0 100644
--- a/UnitsNet/GeneratedCode/Quantities/Duration.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/Duration.g.cs
@@ -79,59 +79,59 @@ namespace UnitsNet
///
/// Provides detailed information about the quantity, including its name, base unit, unit mappings, base dimensions, and conversion functions.
///
- public sealed class DurationInfo: QuantityInfo
+ private static class DurationInfo
{
- ///
- public DurationInfo(string name, DurationUnit baseUnit, IEnumerable> unitMappings, Duration zero, BaseDimensions baseDimensions,
- QuantityFromDelegate fromDelegate, ResourceManager? unitAbbreviations)
- : base(name, baseUnit, unitMappings, zero, baseDimensions, fromDelegate, Duration.RegisterDefaultConversions, unitAbbreviations)
- {
- }
-
- ///
- public DurationInfo(string name, DurationUnit baseUnit, IEnumerable> unitMappings, Duration zero, BaseDimensions baseDimensions)
- : this(name, baseUnit, unitMappings, zero, baseDimensions, Duration.From, new ResourceManager("UnitsNet.GeneratedCode.Resources.Duration", typeof(Duration).Assembly))
- {
- }
-
- ///
- /// Creates a new instance of the class with the default settings for the Duration quantity.
- ///
- /// A new instance of the class with the default settings.
- public static DurationInfo CreateDefault()
- {
- return new DurationInfo(nameof(Duration), DefaultBaseUnit, GetDefaultMappings(), new Duration(0, DefaultBaseUnit), DefaultBaseDimensions);
- }
-
///
/// Creates a new instance of the class with the default settings for the Duration quantity and a callback for customizing the default unit mappings.
///
+ ///
+ /// When provided, the resource manager used for localizing the quantity's unit abbreviations. Defaults to the built-in abbreviations.
+ ///
///
- /// A callback function for customizing the default unit mappings.
+ /// Optionally add, replace or remove unit definitions from the default set of units.
///
///
/// A new instance of the class with the default settings.
///
- public static DurationInfo CreateDefault(Func>, IEnumerable>> customizeUnits)
+ private static QuantityInfo Create(
+ ResourceManager? unitAbbreviations = null,
+ Func>, IEnumerable>>? customizeUnits = null)
{
- return new DurationInfo(nameof(Duration), DefaultBaseUnit, customizeUnits(GetDefaultMappings()), new Duration(0, DefaultBaseUnit), DefaultBaseDimensions);
+ IEnumerable> unitMappings = DurationInfo.GetDefaultMappings();
+ if (customizeUnits != null)
+ unitMappings = customizeUnits(unitMappings);
+
+ return new QuantityInfo(
+ name: nameof(Duration),
+ baseUnit: DefaultBaseUnit,
+ unitMappings: unitMappings,
+ zero: new Duration(0, DefaultBaseUnit),
+ baseDimensions: DefaultBaseDimensions,
+ fromDelegate: From,
+ registerUnitConversions: RegisterDefaultConversions,
+ unitAbbreviations ?? DefaultUnitAbbreviations);
}
///
/// The for is [T].
///
- public static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(0, 0, 1, 0, 0, 0, 0);
+ private static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(0, 0, 1, 0, 0, 0, 0);
///
/// The default base unit of Duration is Second. All conversions, as defined in the , go via this value.
///
- public static DurationUnit DefaultBaseUnit { get; } = DurationUnit.Second;
+ private static DurationUnit DefaultBaseUnit { get; } = DurationUnit.Second;
+
+ ///
+ /// The default resource manager for unit abbreviations of the Duration quantity.
+ ///
+ private static ResourceManager DefaultUnitAbbreviations { get; } = new("UnitsNet.GeneratedCode.Resources.Duration", typeof(Duration).Assembly);
///
/// Retrieves the default mappings for .
///
/// An of representing the default unit mappings for Duration.
- public static IEnumerable> GetDefaultMappings()
+ private static IEnumerable> GetDefaultMappings()
{
yield return new (DurationUnit.Day, "Day", "Days", new BaseUnits(time: DurationUnit.Day));
yield return new (DurationUnit.Hour, "Hour", "Hours", new BaseUnits(time: DurationUnit.Hour));
@@ -150,7 +150,7 @@ public static IEnumerable> GetDefaultMappings()
static Duration()
{
- Info = DurationInfo.CreateDefault();
+ Info = DurationInfo.Create();
DefaultConversionFunctions = new UnitConverter();
RegisterDefaultConversions(DefaultConversionFunctions);
}
diff --git a/UnitsNet/GeneratedCode/Quantities/DynamicViscosity.g.cs b/UnitsNet/GeneratedCode/Quantities/DynamicViscosity.g.cs
index 5978cb0371..a4c655a7d6 100644
--- a/UnitsNet/GeneratedCode/Quantities/DynamicViscosity.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/DynamicViscosity.g.cs
@@ -69,59 +69,59 @@ namespace UnitsNet
///
/// Provides detailed information about the quantity, including its name, base unit, unit mappings, base dimensions, and conversion functions.
///
- public sealed class DynamicViscosityInfo: QuantityInfo
+ private static class DynamicViscosityInfo
{
- ///
- public DynamicViscosityInfo(string name, DynamicViscosityUnit baseUnit, IEnumerable> unitMappings, DynamicViscosity zero, BaseDimensions baseDimensions,
- QuantityFromDelegate fromDelegate, ResourceManager? unitAbbreviations)
- : base(name, baseUnit, unitMappings, zero, baseDimensions, fromDelegate, DynamicViscosity.RegisterDefaultConversions, unitAbbreviations)
- {
- }
-
- ///
- public DynamicViscosityInfo(string name, DynamicViscosityUnit baseUnit, IEnumerable> unitMappings, DynamicViscosity zero, BaseDimensions baseDimensions)
- : this(name, baseUnit, unitMappings, zero, baseDimensions, DynamicViscosity.From, new ResourceManager("UnitsNet.GeneratedCode.Resources.DynamicViscosity", typeof(DynamicViscosity).Assembly))
- {
- }
-
- ///
- /// Creates a new instance of the class with the default settings for the DynamicViscosity quantity.
- ///
- /// A new instance of the class with the default settings.
- public static DynamicViscosityInfo CreateDefault()
- {
- return new DynamicViscosityInfo(nameof(DynamicViscosity), DefaultBaseUnit, GetDefaultMappings(), new DynamicViscosity(0, DefaultBaseUnit), DefaultBaseDimensions);
- }
-
///
/// Creates a new instance of the class with the default settings for the DynamicViscosity quantity and a callback for customizing the default unit mappings.
///
+ ///
+ /// When provided, the resource manager used for localizing the quantity's unit abbreviations. Defaults to the built-in abbreviations.
+ ///
///
- /// A callback function for customizing the default unit mappings.
+ /// Optionally add, replace or remove unit definitions from the default set of units.
///
///
/// A new instance of the class with the default settings.
///
- public static DynamicViscosityInfo CreateDefault(Func>, IEnumerable>> customizeUnits)
+ private static QuantityInfo Create(
+ ResourceManager? unitAbbreviations = null,
+ Func>, IEnumerable>>? customizeUnits = null)
{
- return new DynamicViscosityInfo(nameof(DynamicViscosity), DefaultBaseUnit, customizeUnits(GetDefaultMappings()), new DynamicViscosity(0, DefaultBaseUnit), DefaultBaseDimensions);
+ IEnumerable> unitMappings = DynamicViscosityInfo.GetDefaultMappings();
+ if (customizeUnits != null)
+ unitMappings = customizeUnits(unitMappings);
+
+ return new QuantityInfo(
+ name: nameof(DynamicViscosity),
+ baseUnit: DefaultBaseUnit,
+ unitMappings: unitMappings,
+ zero: new DynamicViscosity(0, DefaultBaseUnit),
+ baseDimensions: DefaultBaseDimensions,
+ fromDelegate: From,
+ registerUnitConversions: RegisterDefaultConversions,
+ unitAbbreviations ?? DefaultUnitAbbreviations);
}
///
/// The for is [T^-1][L^-1][M].
///
- public static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(-1, 1, -1, 0, 0, 0, 0);
+ private static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(-1, 1, -1, 0, 0, 0, 0);
///
/// The default base unit of DynamicViscosity is NewtonSecondPerMeterSquared. All conversions, as defined in the , go via this value.
///
- public static DynamicViscosityUnit DefaultBaseUnit { get; } = DynamicViscosityUnit.NewtonSecondPerMeterSquared;
+ private static DynamicViscosityUnit DefaultBaseUnit { get; } = DynamicViscosityUnit.NewtonSecondPerMeterSquared;
+
+ ///
+ /// The default resource manager for unit abbreviations of the DynamicViscosity quantity.
+ ///
+ private static ResourceManager DefaultUnitAbbreviations { get; } = new("UnitsNet.GeneratedCode.Resources.DynamicViscosity", typeof(DynamicViscosity).Assembly);
///
/// Retrieves the default mappings for .
///
/// An of representing the default unit mappings for DynamicViscosity.
- public static IEnumerable> GetDefaultMappings()
+ private static IEnumerable> GetDefaultMappings()
{
yield return new (DynamicViscosityUnit.Centipoise, "Centipoise", "Centipoise", BaseUnits.Undefined);
yield return new (DynamicViscosityUnit.MicropascalSecond, "MicropascalSecond", "MicropascalSeconds", BaseUnits.Undefined);
@@ -138,7 +138,7 @@ public static IEnumerable> GetDefaultMappin
static DynamicViscosity()
{
- Info = DynamicViscosityInfo.CreateDefault();
+ Info = DynamicViscosityInfo.Create();
DefaultConversionFunctions = new UnitConverter();
RegisterDefaultConversions(DefaultConversionFunctions);
}
diff --git a/UnitsNet/GeneratedCode/Quantities/ElectricAdmittance.g.cs b/UnitsNet/GeneratedCode/Quantities/ElectricAdmittance.g.cs
index d508beeddc..7d91683dc1 100644
--- a/UnitsNet/GeneratedCode/Quantities/ElectricAdmittance.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/ElectricAdmittance.g.cs
@@ -66,59 +66,59 @@ namespace UnitsNet
///
/// Provides detailed information about the quantity, including its name, base unit, unit mappings, base dimensions, and conversion functions.
///
- public sealed class ElectricAdmittanceInfo: QuantityInfo
+ private static class ElectricAdmittanceInfo
{
- ///
- public ElectricAdmittanceInfo(string name, ElectricAdmittanceUnit baseUnit, IEnumerable> unitMappings, ElectricAdmittance zero, BaseDimensions baseDimensions,
- QuantityFromDelegate fromDelegate, ResourceManager? unitAbbreviations)
- : base(name, baseUnit, unitMappings, zero, baseDimensions, fromDelegate, ElectricAdmittance.RegisterDefaultConversions, unitAbbreviations)
- {
- }
-
- ///
- public ElectricAdmittanceInfo(string name, ElectricAdmittanceUnit baseUnit, IEnumerable> unitMappings, ElectricAdmittance zero, BaseDimensions baseDimensions)
- : this(name, baseUnit, unitMappings, zero, baseDimensions, ElectricAdmittance.From, new ResourceManager("UnitsNet.GeneratedCode.Resources.ElectricAdmittance", typeof(ElectricAdmittance).Assembly))
- {
- }
-
- ///
- /// Creates a new instance of the class with the default settings for the ElectricAdmittance quantity.
- ///
- /// A new instance of the class with the default settings.
- public static ElectricAdmittanceInfo CreateDefault()
- {
- return new ElectricAdmittanceInfo(nameof(ElectricAdmittance), DefaultBaseUnit, GetDefaultMappings(), new ElectricAdmittance(0, DefaultBaseUnit), DefaultBaseDimensions);
- }
-
///
/// Creates a new instance of the class with the default settings for the ElectricAdmittance quantity and a callback for customizing the default unit mappings.
///
+ ///
+ /// When provided, the resource manager used for localizing the quantity's unit abbreviations. Defaults to the built-in abbreviations.
+ ///
///
- /// A callback function for customizing the default unit mappings.
+ /// Optionally add, replace or remove unit definitions from the default set of units.
///
///
/// A new instance of the class with the default settings.
///
- public static ElectricAdmittanceInfo CreateDefault(Func>, IEnumerable>> customizeUnits)
+ private static QuantityInfo Create(
+ ResourceManager? unitAbbreviations = null,
+ Func>, IEnumerable>>? customizeUnits = null)
{
- return new ElectricAdmittanceInfo(nameof(ElectricAdmittance), DefaultBaseUnit, customizeUnits(GetDefaultMappings()), new ElectricAdmittance(0, DefaultBaseUnit), DefaultBaseDimensions);
+ IEnumerable> unitMappings = ElectricAdmittanceInfo.GetDefaultMappings();
+ if (customizeUnits != null)
+ unitMappings = customizeUnits(unitMappings);
+
+ return new QuantityInfo(
+ name: nameof(ElectricAdmittance),
+ baseUnit: DefaultBaseUnit,
+ unitMappings: unitMappings,
+ zero: new ElectricAdmittance(0, DefaultBaseUnit),
+ baseDimensions: DefaultBaseDimensions,
+ fromDelegate: From,
+ registerUnitConversions: RegisterDefaultConversions,
+ unitAbbreviations ?? DefaultUnitAbbreviations);
}
///
/// The for is [T^3][L^-2][M^-1][I^2].
///
- public static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(-2, -1, 3, 2, 0, 0, 0);
+ private static BaseDimensions DefaultBaseDimensions { get; } = new BaseDimensions(-2, -1, 3, 2, 0, 0, 0);
///
/// The default base unit of ElectricAdmittance is Siemens. All conversions, as defined in the , go via this value.
///
- public static ElectricAdmittanceUnit DefaultBaseUnit { get; } = ElectricAdmittanceUnit.Siemens;
+ private static ElectricAdmittanceUnit DefaultBaseUnit { get; } = ElectricAdmittanceUnit.Siemens;
+
+ ///
+ /// The default resource manager for unit abbreviations of the ElectricAdmittance quantity.
+ ///
+ private static ResourceManager DefaultUnitAbbreviations { get; } = new("UnitsNet.GeneratedCode.Resources.ElectricAdmittance", typeof(ElectricAdmittance).Assembly);
///
/// Retrieves the default mappings for .
///
/// An of representing the default unit mappings for ElectricAdmittance.
- public static IEnumerable> GetDefaultMappings()
+ private static IEnumerable> GetDefaultMappings()
{
yield return new (ElectricAdmittanceUnit.Gigamho, "Gigamho", "Gigamhos", BaseUnits.Undefined);
yield return new (ElectricAdmittanceUnit.Gigasiemens, "Gigasiemens", "Gigasiemens", new BaseUnits(length: LengthUnit.Meter, mass: MassUnit.Microgram, time: DurationUnit.Second, current: ElectricCurrentUnit.Ampere));
@@ -141,7 +141,7 @@ public static IEnumerable> GetDefaultMapp
static ElectricAdmittance()
{
- Info = ElectricAdmittanceInfo.CreateDefault();
+ Info = ElectricAdmittanceInfo.Create();
DefaultConversionFunctions = new UnitConverter();
RegisterDefaultConversions(DefaultConversionFunctions);
}
diff --git a/UnitsNet/GeneratedCode/Quantities/ElectricApparentEnergy.g.cs b/UnitsNet/GeneratedCode/Quantities/ElectricApparentEnergy.g.cs
index cb89f9385b..1c01851619 100644
--- a/UnitsNet/GeneratedCode/Quantities/ElectricApparentEnergy.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/ElectricApparentEnergy.g.cs
@@ -62,59 +62,59 @@ namespace UnitsNet
///
/// Provides detailed information about the quantity, including its name, base unit, unit mappings, base dimensions, and conversion functions.
///
- public sealed class ElectricApparentEnergyInfo: QuantityInfo
+ private static class ElectricApparentEnergyInfo
{
- ///
- public ElectricApparentEnergyInfo(string name, ElectricApparentEnergyUnit baseUnit, IEnumerable> unitMappings, ElectricApparentEnergy zero, BaseDimensions baseDimensions,
- QuantityFromDelegate fromDelegate, ResourceManager? unitAbbreviations)
- : base(name, baseUnit, unitMappings, zero, baseDimensions, fromDelegate, ElectricApparentEnergy.RegisterDefaultConversions, unitAbbreviations)
- {
- }
-
- ///
- public ElectricApparentEnergyInfo(string name, ElectricApparentEnergyUnit baseUnit, IEnumerable> unitMappings, ElectricApparentEnergy zero, BaseDimensions baseDimensions)
- : this(name, baseUnit, unitMappings, zero, baseDimensions, ElectricApparentEnergy.From, new ResourceManager("UnitsNet.GeneratedCode.Resources.ElectricApparentEnergy", typeof(ElectricApparentEnergy).Assembly))
- {
- }
-
- ///
- /// Creates a new instance of the class with the default settings for the ElectricApparentEnergy quantity.
- ///
- /// A new instance of the class with the default settings.
- public static ElectricApparentEnergyInfo CreateDefault()
- {
- return new ElectricApparentEnergyInfo(nameof(ElectricApparentEnergy), DefaultBaseUnit, GetDefaultMappings(), new ElectricApparentEnergy(0, DefaultBaseUnit), DefaultBaseDimensions);
- }
-
///
/// Creates a new instance of the class with the default settings for the ElectricApparentEnergy quantity and a callback for customizing the default unit mappings.
///
+ ///
+ /// When provided, the resource manager used for localizing the quantity's unit abbreviations. Defaults to the built-in abbreviations.
+ ///
///
- /// A callback function for customizing the default unit mappings.
+ /// Optionally add, replace or remove unit definitions from the default set of units.
///
///
/// A new instance of the class with the default settings.
///
- public static ElectricApparentEnergyInfo CreateDefault(Func>, IEnumerable>> customizeUnits)
+ private static QuantityInfo Create(
+ ResourceManager? unitAbbreviations = null,
+ Func>, IEnumerable>>? customizeUnits = null)
{
- return new ElectricApparentEnergyInfo(nameof(ElectricApparentEnergy), DefaultBaseUnit, customizeUnits(GetDefaultMappings()), new ElectricApparentEnergy(0, DefaultBaseUnit), DefaultBaseDimensions);
+ IEnumerable> unitMappings = ElectricApparentEnergyInfo.GetDefaultMappings();
+ if (customizeUnits != null)
+ unitMappings = customizeUnits(unitMappings);
+
+ return new QuantityInfo(
+ name: nameof(ElectricApparentEnergy),
+ baseUnit: DefaultBaseUnit,
+ unitMappings: unitMappings,
+ zero: new ElectricApparentEnergy(0, DefaultBaseUnit),
+ baseDimensions: DefaultBaseDimensions,
+ fromDelegate: From,
+ registerUnitConversions: RegisterDefaultConversions,
+ unitAbbreviations ?? DefaultUnitAbbreviations);
}
///