从代码创建函数

时间:2014-10-09 13:38:59

标签: .net vb.net refactoring

我被要求编辑以下代码......

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If DateTime.Now.Hour >= 6 And DateTime.Now.Hour < 12 Then
        Message.Text = "Good Morning."
    End If

    If DateTime.Now.Hour >= 12 And DateTime.Now.Hour <= 17 Then
        Message.Text = "Good Afternoon."
    End If

    If DateTime.Now.Hour > 17 Or DateTime.Now.Hour < 6 Then
        Message.Text = "Good Evening"
    End If
End Sub

并将其更改为一个函数。原始代码在打开时基本上显示网页上的一条消息,具体取决于它的时间。我正在寻找一些关于如何或需要改变以将其变成函数的帮助。

我已经编辑了下面的代码,但只是稍微有些看起来完全错误的东西将是因为我只编辑了它的一小部分所以函数中的ByVal我不得不试图实现到函数中,因为我是有点卡住了。

Private Function Greetings(goodMorning as string, goodAfternoon as String, goodEvening as String) as String

    Dim outPut As String

    If DateTime.Now.Hour >= 6 And DateTime.Now.Hour < 12 Then
            Message.Text = "Good Morning."
    ElseIf
        DateTime.Now.Hour >= 12 And DateTime.Now.Hour <= 17 Then
        Message.Text = "Good Afternoon."
    ElseIf
        DateTime.Now.Hour >= 12 And DateTime.Now.Hour <= 17 Then
        Message.Text = "Good Afternoon."

    Return outPut
End Function

1 个答案:

答案 0 :(得分:0)

我会给你一个指针而不是完整的答案,因为从长远来看这对你没有帮助。

理想情况下,您的网页加载需要看起来像这样

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    Message.Text = GetGreeting(DateTime.Now.Hour)

End Sub

现在你需要创建一个与你需要传入的参数相匹配的函数 - 在这种情况下,小时是一个整数,它需要返回问候语的字符串。