public IrcLine(IrcClient client, String line)
{
String[] normalParams;
Match result;
this.client = client;
result = ircLineRegEx.Match(line);
if (result.Success)
{
prefix = result.Groups[1].Value;
command = result.Groups[2].Value;
normalParams = result.Groups[3].Value.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
if (result.Groups[4].Success)
{
parameters = new String[normalParams.Length + 1];
normalParams.CopyTo(parameters, 0);
parameters[parameters.Length - 1] = result.Groups[4].Value;
}
else
{
parameters = normalParams;
}
Int32.TryParse(command, out numeric);
}
else
{
throw new InvalidLineFormatException(line);
}
}