title: A ref or out argument must be an assignable variable
body: <p>I'm coding an application which can make a reverse proxy connection but I have a problem!
  The error is here: <code>new Form1.ProxyConfig()</code></p>
  
  <p>When I try to run it I get an error: "<strong>A ref or out argument must be an assignable variable</strong>"</p>
  
  <pre><code>private void startToolStripMenuItem_Click(object sender, EventArgs e)
  {
      if (this.startToolStripMenuItem.Text == "Start")
      {
          var form2 = new Form2();
  
          if (form2.ShowDialog() != DialogResult.OK)
              return;
  
          int num1 = Form1.ProxyListenerStart(ref new Form1.ProxyConfig()
          {
              pclient_port = form2.ClientPort,
              pp_start = form2.LocalStartPort,
              pp_end = form2.LocalEndPort
          }, ref this._PN);
  
          if (num1 != 0)
              int num2 = (int) MessageBox.Show("Error " + num1.ToString());
          else startToolStripMenuItem.Text = "Stop";
      }
      else
      {
          Form1.ProxyListenerStop();
  
          startToolStripMenuItem.Text = "Start";
          listView1.Items.Clear();
          toolStripStatusLabel2.Text = "0";
      }
  }
  private struct ProxyConfig
  {
      public int pclient_port;
      public int pp_start;
      public int pp_end;
  }
  </code></pre>