System.UriParseComponents.ParsePort C# (CSharp) Méthode

ParsePort() private static méthode

private static ParsePort ( ParserState state ) : bool
state ParserState
Résultat bool
		private static bool ParsePort (ParserState state)
		{
			string part = state.remaining;
			if (part.Length == 0 || part [0] != ':')
				return part.Length > 0;
			
			StringBuilder sb = new StringBuilder ();
			
			int index;
			for (index = 1; index < part.Length; index++ ) {
				char ch = part [index];
				
				if (!char.IsDigit (ch)) {
					if (ch == '/' || ch == '#' || ch == '?')
						break;

					state.error = "Invalid URI: Invalid port specified.";
					return false;
				}
				
				sb.Append (ch);
			}

			if (index <= part.Length)
				state.remaining = part.Substring (index);

			if (sb.Length == 0)
				return state.remaining.Length > 0;
			
			int port;
			if (!Int32.TryParse (sb.ToString (), NumberStyles.None, CultureInfo.InvariantCulture, out port) ||
				port < 0 || port > UInt16.MaxValue) {
				state.error = "Invalid URI: Invalid port number";
				return false;
			}

			state.elements.port = port;
				
			return state.remaining.Length > 0;
		}