إعلان قائمة حالات لاستخدامها في أكثر من مكان

StackOverflow https://stackoverflow.com/questions/4277413

  •  28-09-2019
  •  | 
  •  

سؤال

لدي الرمز التالي في صفحتي التي تعمل بشكل جيد على الرغم من أن عدد الحالات أكبر بكثير. أحتاج إلى استخدام نفس قائمة الحالات بالضبط في عمليات الاختيار الأخرى ، لكنني لا أريد أن أحصل على نفس الكود تمامًا في كل مكان.

لدي هذا:

   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

هذا النوع من الأعمال ولكن هناك مشكلة بسيطة. لا بد لي من تحميل الصفحة مرتين حتى يتغير رقم الهاتف (أو يظهر رقم الهاتف كما كان ينبغي القيام به في الحمل السابق). آمل أن يكون هذا منطقيًا ... إنه سلوك غريب إلى حد ما.

هل كانت مفيدة؟

المحلول

إنشاء طريقة:

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

نصائح أخرى

يمكنك تجربة الفصل (من Tkey ، TValue)
ملاحظة: هل هو متسلسل: -Q

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top