示例#1
0
        /// <summary>
        /// 将指定基的数字的字符串表示形式转换为等效的 <c>8</c> 位无符号整数。
        /// </summary>
        /// <param name="value">包含要转换的数字的字符串,
        /// 使用不区分大小写的字母表示大于 <c>10</c> 的数。</param>
        /// <param name="fromBase"><paramref name="value"/> 中数字的基数,
        /// 它必须位于 <c>2</c> 到 <c>36</c> 之间。</param>
        /// <returns>与 <paramref name="value"/> 中数字等效的 <c>8</c> 位无符号整数,
        /// 如果 <paramref name="value"/> 为 <c>null</c>,则为 <c>0</c>(零)。</returns>
        /// <exception cref="System.ArgumentException">
        /// <paramref name="fromBase"/> 不是 <c>2</c> 到 <c>36</c> 之间的数字。</exception>
        /// <exception cref="System.ArgumentException">
        /// <paramref name="value"/> 表示一个非 <c>10</c> 为基的有符号数,
        /// 但前面带一个负号。</exception>
        /// <exception cref="System.FormatException"><paramref name="value"/>
        /// 包含的一个字符不是 <paramref name="fromBase"/> 指定的基中的有效数字。
        /// 如果 <paramref name="value"/> 中的第一个字符无效,异常消息则指示没有可转换的数字;
        /// 否则,该消息将指示 <paramref name="value"/> 包含无效的尾随字符。</exception>
        /// <exception cref="System.OverflowException"><paramref name="value"/>
        /// 表示小于 <see cref="System.Byte.MinValue"/> 或大于
        /// <see cref="System.Byte.MaxValue"/> 的数字。</exception>
        public static byte ToByte(string value, int fromBase)
        {
            uint result = ToUInt32(value, fromBase);

            if (result > byte.MaxValue)
            {
                throw ExceptionHelper.OverflowByte();
            }
            return(unchecked ((byte)result));
        }