MailKit.Net.Imap.ImapClient.HexUnescape C# (CSharp) Метод

HexUnescape() статический приватный Метод

static private HexUnescape ( string pattern, int &index ) : char
pattern string
index int
Результат char
		static char HexUnescape (string pattern, ref int index)
		{
			uint value, c;

			if (pattern[index++] != '%' || !IsHexDigit (pattern[index]) || !IsHexDigit (pattern[index + 1]))
				return '%';

			c = (uint) pattern[index++];

			if (c >= 'a')
				value = (((c - 'a') + 10) << 4);
			else if (c >= 'A')
				value = (((c - 'A') + 10) << 4);
			else
				value = ((c - '0') << 4);

			c = pattern[index++];

			if (c >= 'a')
				value |= ((c - 'a') + 10);
			else if (c >= 'A')
				value |= ((c - 'A') + 10);
			else
				value |= (c - '0');

			return (char) value;
		}