Pregunta

Tengo el siguiente código en mi página que funciona bien, aunque el número de casos es mucho más grande. Necesito usar exactamente la misma lista de casos en otros selecciona pero no quieren tener exactamente el mismo código duplicado por todo el lugar.

tengo esto:

   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

Me idealmente quiero algo como esto

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

¿Alguna idea?

EDIT:

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

Y en el 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

Este tipo de obras, pero hay un pequeño problema. Tengo que cargar la página dos veces por el número de teléfono para el cambio (o el aparece número de teléfono, ya que debería haber hecho en la carga anterior). Espero este sentido marcas ... que es un comportamiento bastante extraño.

¿Fue útil?

Solución

Crear un método:

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;
    }
}

Cuando se llama a él:

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

Mi conjetura que es como esto en 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

Otros consejos

Se puede probar el diccionario (De TKey, TValue) Clase
Nota: se es serializable: -Q

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top