声明要在多个位置使用的案例列表

时间:2010-11-25 13:12:32

标签: asp.net vb.net select-case

我的页面中有以下代码可以正常工作,但案例数量要大得多。我需要在其他选项中使用完全相同的案例列表,但我不希望在整个地方具有完全相同的代码副本。

我有这个:

   Select Case Request.Cookies("LatestRefer").Value
        Case "EZ12"
            freeCallNumber = "0800 111 1111"
        Case "EW56"
            freeCallNumber = "0800 222 2222"
        Case "AT34"
            freeCallNumber = "0800 333 3333"
        Case Else
                freeCallNumber = "0800 444 4444"
    End Select

我理想地想要这样的东西

Select Case Request.Cookies("cookie1").Value
            myGlobalListOfCases()
        End Select

Select Case Request.Cookies("cookie2").Value
                myGlobalListOfCases()
            End Select

Select Case Request.Cookies("cookie3").Value
                    myGlobalListOfCases()
                End Select

有什么想法吗?

编辑:

Private Function getFreeCallNumber(ByVal value As String) As String
        Select Case value
            Case "EZ12"
                Return "0800 111 1111"
            Case Else
                Return "0800 222 2222"
        End Select
    End Function

在page_load中:

If Not Request.Cookies("cookie1") is Nothing Then
    freeCallnumber = Me.getFreeCallNumber(Request.Cookies("cookie1").Value)
        Else
  freeCallnumber = Me.getFreeCallNumber(Request.Cookies("cookie2").Value)
        End If

这种作品,但有一个小问题。我必须加载页面两次才能更改电话号码(或者电话号码显示为应该在之前的负载上完成)。希望这是有道理的......这是相当奇怪的行为。

2 个答案:

答案 0 :(得分:2)

创建方法:

private string getFreeCallNumber(string value)
{
    switch (value)
    {
        case "EZ12":
            return "0800 111 1111";
        case "EW56":
            return "0800 222 2222";
        // TODO: Add more switch cases here.
        default:
            return null;
    }
}

打电话时:

string freeCallnumber = this.getFreeCallNumber(Request.Cookies["cookie1"].Value));
if (string.IsNullOrEmpty(freeCallNumber))
{
     // other logic
}

我的猜测在VB.net中就像这样:

Private Function getFreeCallNumber(value as String) as String
    Select Case value
        Case "EZ12"
            return "0800 111 1111"
        Case "EW56"
            return "0800 222 2222"
        ' TODO: Add more switch cases here.
        Case Else
            return Nothing
    End Select
End Function

答案 1 :(得分:1)

您可以尝试Dictionary(Of TKey, TValue) Class
注意:是可序列化的:-Q