如果我想在B()在Form1_Load()中調用時替換/覆蓋B()到C()或D(),是否可能?是否有可能相等/重寫一個函數/方法與另一個?
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
}
基本上我需要C()要像教練時Form1_Load的()被調用B(指示),它能夠說Form1_Load的()實際上需要調用d()或E()的情況基地。
我試圖避免太多if..else在每種方法。 基本上,我正在開發一個軟件來接收多種格式的csv源文件,並且Form1_Load()被編碼以執行一組涉及圖表構建和圖表繪製的修復指令。我試圖讓它像軟件的骨架一樣。 C()用於確定已由用戶加載的csv文件的類型,並決定如果其類型A覆蓋B(),否則將B()覆蓋爲E()如果它是類型B. 我需要使用不同的數據集集來顯示csv信息到圖表,並根據csv文件中的內容,我需要設計不同的濾鏡以顯示相關的顯示。
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'");
}
爲了更精確,d()和E()不只是一種方法,它是代表一系列的涉及處理CSV方法。
我認爲這個要求很簡單,而且你正在複雜化一些東西,你能否更清楚一下這個要求?在這個屏幕中如何確定'D()或E()'C();'的目的是什麼 –
我試圖避免在每個方法中有太多if..else。 –
你試圖避免檢查if和else的可能的不同條件是什麼? –