簡體   English   中英

我應該在我的void方法中使用輸出嗎?

[英]c# Should I use a output in my void method?

 private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            int Number = Convert.ToInt32(textBox1.Text);
            HalfNumber(Number);
            textBox1.Focus();
            textBox1.SelectAll();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
    private void HalfNumber(int numberToUse)
    {
        double x = numberToUse / 2.0;
        MessageBox.Show("Half of the number is " + x.ToString());
    }
}
}

上面的代碼是一個示例。
我以為我的講師說永遠不要在方法中使用輸出,因為在測試代碼的情況下,代碼可能在世界的另一端,無法看到正在發生的事情。
我可能誤會了她,但我想請人解釋一下

很難確切知道她的意思。 但是,將對話框放在執行離散操作的函數中是意外的。

HalfNumber方法返回一個數字,然后顯示包含結果的對話框會更合乎邏輯

private void button1_Click(object sender, EventArgs e)
{
    try
    {
        int Number = Convert.ToInt32(textBox1.Text);
        double myHalfNumber = HalfNumber(Number);

        MessageBox.Show("Half of the number is " +myHalfNumber.ToString());

        textBox1.Focus();
        textBox1.SelectAll();

    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }

}

private double HalfNumber(int numberToUse)
{      
    return numberToUse / 2.0;
}

關注點分離

在軟件工程中,關注點分離是指軟件元素的描述和關聯,以實現系統內的順序。 通過適當地分離關注點,復雜度變得可控

不要重復自己(干)

軟件開發的原則旨在減少軟件模式的重復,用抽象代替它們; 和相同數據的多個副本,使用數據規范化來避免冗余。

HalfNumber放入其自己的離散方法中,可以重用代碼,並將邏輯分離為僅可維護和可預測的邏輯

void表示您無法返回任何值。 如果要輸出,則需要指定它。 之后,您可以使用返回值。

例如:

private double HalfNumber(int numberToUse)
{
    double x = numberToUse / 2.0;
    return x;
}

你可以這樣使用

private void button1_Click(object sender, EventArgs e)
{
    try
    {
        int Number = Convert.ToInt32(textBox1.Text);
        double result = HalfNumber(Number);

        MessageBox.Show("Half of the number is " + result.ToString());
        textBox1.Focus();
        textBox1.SelectAll();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

private double HalfNumber(int numberToUse)
{
    double x = numberToUse / 2.0;
    return x;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM