I have a Winforms app with the following constructors:
public Form1()
{
  InitializeComponent();
 //Code that enables/disables buttons etc
}
public Form1(int ID)
{
  searchByID = ID;
  InitializeComponent();
 //Code that enables/disables buttons etc
}
Which one gets choosen? That depends if the program is started by CMD with an added parameter. This is the main that checks that:
static void Main(string[] args)
{
            //Args will be the ID passed by a CMD-startprocess (if it's started by cmd of course
            if (args.Length == 0)
            {
                Application.Run(new Form1());
            }
            else if(args.Length>0)
            {
                string resultString = Regex.Match(args[0], @"\d+").Value;
                incidentID = Int32.Parse(resultString);
                try
                {
                    Application.Run(new Form1(incidentID));
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString());
                }
            }
}
My question was:
How can I optimize the constructors? They both contain about 30 lines of as good as the same code and I wanted to fix this by doing:
  public Form1()
    {
        Form1(0)
    }
 public Form1(int ID)
 {
       if (ID>0)
    {
       //it has an ID
    }else
    {
       doesn't have an ID
    }
 }
but this gives me the error:
Non-invocable member cannot be used like a method.
How can I optimize this?
 
    