إعلان قائمة حالات لاستخدامها في أكثر من مكان
-
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
لا تنتمي إلى StackOverflow