title: Is it possible to equal/overwrite one function/method with another?
body: <p>Is it possible if I wanted to replace/overwrite B() to C() or D() when B() is called in Form1_Load();</p>
  
  <pre><code>    public Prototype()
      {
          InitializeComponent();
          C();
      }        
  
      private void Form1_Load()
      {
          B();
      }
  
      private void B()
      { 
          //blank so far
          //not sure what to put 
      }
  
      private void C()  
      {
          if (RadioButton.Checked == false)
          { B() == D(); }
          else 
          { B() == E(); }        
      }
      private void D()
      {
          //something ongoing
      }
      private void E()
      {
          //something ongoing
      }
  </code></pre>
  
  <p>basically I needed C() to act like instructor to instruct when Form1_Load() is calling B(), it's capable to say Form1_Load() actually need to call D() or E() base on situation.</p>
  
  <p>I was trying to avoid too many if..else in each method. 
  Basically, I am developing a software to receive multiple format csv source file and the Form1_Load() is coded to execute a set of fix instructions which involving chart building and graph plotting. I tried to make it like the skeleton for the software.</p>
  
  <p>C() is use to determine the type of csv files that had been loaded by user, and decide whether it will overwrite B() with D() if its type A , else overwrite B() to E() if it's type B. 
  I need to use different sets of dataset to display the csv information to chart and based on what is in the csv file I need to design different filters out relevant display.</p>
  
  <pre><code>    public void I1_ChartTabulate()
      {
          Stopwatch timer = new Stopwatch();
          timer.Start();
  
          Charting.dataGridView1.DataSource = G_BS_I1;
          Charting.dataGridView1.AutoGenerateColumns = false;
  
          Charting.dataGridView1.Columns[0].Visible = false;
          Charting.dataGridView1.Columns[1].Visible = true;
          Charting.dataGridView1.Columns[2].Visible = false;
          Charting.dataGridView1.Columns[3].Visible = false;
          Charting.dataGridView1.Columns[4].Visible = false;
          Charting.dataGridView1.Columns[5].Visible = false;
          Charting.dataGridView1.Columns[6].Visible = false;
          Charting.dataGridView1.Columns[7].Visible = false;
          Charting.dataGridView1.Columns[8].Visible = true;  
          Charting.dataGridView1.Columns[9].Visible = false;
          Charting.dataGridView1.Columns[10].Visible = false;
          Charting.dataGridView1.Columns[11].Visible = false;
          Charting.dataGridView1.Columns[12].Visible = true;
          Charting.dataGridView1.Columns[13].Visible = false;
          Charting.dataGridView1.Columns[14].Visible = false;
          Charting.dataGridView1.Columns[15].Visible = false;
          Charting.dataGridView1.Columns[16].Visible = false;
          Charting.dataGridView1.Columns[17].Visible = false;
          Charting.dataGridView1.Columns[18].Visible = false;
          Charting.dataGridView1.Columns[19].Visible = false;
          Charting.dataGridView1.Columns[20].Visible = false;
          Charting.dataGridView1.Columns[21].Visible = false;
          Charting.dataGridView1.Columns[22].Visible = false;
          Charting.dataGridView1.Columns[23].Visible = false;
          Charting.dataGridView1.Columns[24].Visible = true;
          Charting.dataGridView1.Columns[25].Visible = false;
          Charting.dataGridView1.Columns[26].Visible = false;
          Charting.dataGridView1.Columns[27].Visible = false;
  
          timer.Stop();
          label62.Text = timer.Elapsed.TotalMilliseconds.ToString("#,##0.00 'milliseconds'");
      }
  
      public void I2_ChartTabulate()
      {
          Stopwatch timer = new Stopwatch();
          timer.Start();
  
          Charting.dataGridView2.DataSource = G_BS_I2;
          Charting.dataGridView2.AutoGenerateColumns = false;
  
          Charting.dataGridView2.Columns[0].Visible = false;
          Charting.dataGridView2.Columns[1].Visible = true;
          Charting.dataGridView2.Columns[2].Visible = false;
          Charting.dataGridView2.Columns[3].Visible = false;
          Charting.dataGridView2.Columns[4].Visible = false;
          Charting.dataGridView2.Columns[5].Visible = false;
          Charting.dataGridView2.Columns[6].Visible = false;
          Charting.dataGridView2.Columns[7].Visible = false;
          Charting.dataGridView2.Columns[8].Visible = true;  
          Charting.dataGridView2.Columns[9].Visible = false;
          Charting.dataGridView2.Columns[10].Visible = false;
          Charting.dataGridView2.Columns[11].Visible = false;
          Charting.dataGridView2.Columns[12].Visible = true;
          Charting.dataGridView2.Columns[13].Visible = false;
          Charting.dataGridView2.Columns[14].Visible = false;
          Charting.dataGridView2.Columns[15].Visible = false;
          Charting.dataGridView2.Columns[16].Visible = false;
          Charting.dataGridView2.Columns[17].Visible = false;
          Charting.dataGridView2.Columns[18].Visible = false;
          Charting.dataGridView2.Columns[19].Visible = false;
          Charting.dataGridView2.Columns[20].Visible = false;
          Charting.dataGridView2.Columns[21].Visible = false;
          Charting.dataGridView2.Columns[22].Visible = false;
          Charting.dataGridView2.Columns[23].Visible = false;
          Charting.dataGridView2.Columns[24].Visible = true;
          Charting.dataGridView2.Columns[25].Visible = false;
          Charting.dataGridView2.Columns[26].Visible = false;
          Charting.dataGridView2.Columns[27].Visible = false;
  
          timer.Stop();
          label63.Text = timer.Elapsed.TotalMilliseconds.ToString("#,##0.00 'milliseconds'");
  
      }
  </code></pre>
  
  <p>To be more precise, D() and E() is not just one method, it's representing a series of methods involved to process the csv.</p>