public static AbstractDirLine getDirLine(string line) { if (UnixLine.matches(line)) { return new UnixLine(line); } else if (WindowsLine.matches(line)) { return new WindowsLine(line); } throw new ArgumentException(); }