Microsoft.Language.Xml.Scanner.TryHexToUnicode C# (CSharp) Method

TryHexToUnicode() private method

private TryHexToUnicode ( StringBuilder pwcText, uint &pulCode ) : bool
pwcText StringBuilder
pulCode uint
return bool
        internal bool TryHexToUnicode(StringBuilder pwcText, ref uint pulCode)
        {
            Debug.Assert(pwcText != null);
            uint ulCode = 0;
            char wch;
            var n = pwcText.Length - 1;
            for (var i = 0; i <= n; i++)
            {
                wch = pwcText[i];
                if (XmlCharType.InRange(wch, '0', '9'))
                {
                    ulCode = (ulCode * 16) + ((uint)(wch)) - ((uint)('0'));
                }
                else if (XmlCharType.InRange(wch, 'a', 'f'))
                {
                    ulCode = (ulCode * 16) + 10 + ((uint)(wch)) - ((uint)('a'));
                }
                else if (XmlCharType.InRange(wch, 'A', 'F'))
                {
                    ulCode = (ulCode * 16) + 10 + ((uint)(wch)) - ((uint)('A'));
                }
                else
                {
                    return false;
                }

                if (ulCode > 0x10FFFF)
                {
                    return false;
                }
            }

            pulCode = ((uint)ulCode);
            return true;
        }
Scanner