मैंने उन्हें लिंक किए गए पृष्ठ इंटरैक्शन की श्रृंखला बनाने के लिए एएसपी.NET में एक सिस्टम लिखने के लिए उपयोग किया। यदि आप किसी वेबसाइट के साथ अनुरोध और प्रतिक्रियाओं की श्रृंखला के रूप में किसी उपयोगकर्ता की वार्तालाप की कल्पना करते हैं, तो आप IEnumerable
के रूप में एक इंटरैक्शन मॉडल कर सकते हैं। संकल्पनात्मक रूप से, इस तरह;
IEnumerable<PageResponse> SignupProcess(FormValues form)
{
// signup starts with a welcome page, asking
// the user to accept the license.
yield return new WelcomePageResponse();
// if they don't accept the terms, direct
// them to a 'thanks anyway' screen
if (!form["userAcceptsTerms"])
{
yield return new ThanksForYourTimePageResponse();
yield break;
}
// On the second page, we gather their email;
yield new EmailCapturePage("");
while(!IsValid(form["address"]))
{
// loop until we get a valid address.
yield return new EmailCapturePage("The email address is incorrect. Please fix.");
}
}
आप, सत्र स्थिति में इटरेटर की दुकान इतनी है कि जब साइट के लिए उपयोगकर्ता रिटर्न तुम सिर्फ इटरेटर बाहर खींच, अगले पृष्ठ पर इटरेटर ले जाते हैं, और इसे वापस उपज प्रतिपादन के लिए कर सकते हैं। कॉम्प्लेक्स साइट इंटरैक्शन को एक ही स्थान पर कोड किया जाता है।
स्रोत
2010-01-22 00:45:11
क्यों सी # तक सीमित अधिक परिवर्तनों गठबंधन करने के लिए बनाता है? – ChaosPandion
@Cos: मुझे एहसास नहीं हुआ कि वे भी वीबी द्वारा समर्थित थे। संपादित। – SLaks
दरअसल, इटरेटर ब्लॉक ".NET" (अर्थ: रनटाइम) सुविधा नहीं हैं। वे पूरी तरह से संकलक द्वारा प्रदान की जाने वाली भाषा विशेषताएं हैं। –