Click here to Skip to main content
15,891,136 members
Articles / DevOps / Unit Testing

Units of Measure Library for .NET

Rate me:
Please Sign up or sign in to vote.
4.93/5 (7 votes)
20 Jun 2012CPOL8 min read 60.4K   2K   35  
This article introduces a library for handling units of measure.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
using System.Globalization;

namespace HDLibrary.UnitsOfMeasure
{
    public static class UnitParserExtension
    {
        public static Unit ReturnNullOrThrowFormatException(string exceptionMessage, Exception innerException, bool throwFormatException)
        {
            if (throwFormatException)
                throw new FormatException(exceptionMessage, innerException);
            else
                return null;
        }

        public static Unit ReturnNullOrThrowFormatException(string exceptionMessage, bool throwException)
        {
            return ReturnNullOrThrowFormatException(exceptionMessage, null, throwException);
        }



        /// <summary>
        /// Parses the unit string. If unsuccessful, an exception will be thrown.
        /// </summary>
        /// <param name="parser">this</param>
        /// <param name="unitStr">The string to parse.</param>
        /// <returns>The parsed unit.</returns>
        public static Unit ParseUnit(this IUnitParser parser, string unitStr)
        {
            return parser.ParseUnit(unitStr, null, null, true);
        }

        /// <summary>
        /// Parses the unit string. If unsuccessful, no exception will be thrown.
        /// </summary>
        /// <param name="parser">this</param>
        /// <param name="unitStr">The string to parse.</param>
        /// <returns>The parsed unit or null if unsuccessful.</returns>
        public static Unit TryParseUnit(this IUnitParser parser, string unitStr)
        {
            return TryParse(parser, unitStr, null, null);
        }

        /// <summary>
        /// Parses the unit string. If unsuccessful, no exception will be thrown.
        /// </summary>
        /// <param name="parser">this</param>
        /// <param name="unitStr">The string to parse.</param>
        /// <param name="resultUnitAbbreviation">The abbreviation of the returned unit. Will be ignored, if unitStr references a registered unit.</param>
        /// <param name="resultUnitName">The name of the returned unit. Will be ignored, if unitStr references a registered unit.</param>
        /// <returns>The parsed unit or null if unsuccessful.</returns>
        public static Unit TryParse(this IUnitParser parser, string unitStr, string resultUnitAbbreviation, string resultUnitName)
        {
            return parser.ParseUnit(unitStr, resultUnitAbbreviation, resultUnitName, false);
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Student
Germany Germany
Presently I am a student of computer science at the Karlsruhe Institute of Technology in Germany.

Comments and Discussions