0

我的页面中有以下代码,尽管案例数量要大得多,但它运行良好。我需要在其他选择中使用完全相同的案例列表,但我不想让完全相同的代码在所有地方重复。

我有这个:

   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

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

4

2 回答 2

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
于 2010-11-25T13:23:15.247 回答
1

您可以尝试Dictionary(Of TKey, TValue) 类
注意:is is serializable :-Q

于 2010-11-25T13:16:42.400 回答