تمرين - استخدام Copilot للإكمال التلقائي للتعليمات البرمجية
أثناء تطويرك باستخدام Copilot، ستجد أنه يمكن أن يساعدك على إكمال التعليمات البرمجية الخاصة بك بشكل أسرع. يمكن ل Copilot الإكمال التلقائي للتعليمات البرمجية التي تكتبها، وأيضا اقتراح التعليمات البرمجية التي قد تحتاج إليها. في هذا التمرين، ستستخدم Copilot لإنشاء أساليب جديدة في مشروع Trie. لنبدأ!
استخدام Copilot للإكمال التلقائي للتعليمات البرمجية
فتح ملف Trie.cs
أدخل سطرا جديدا بعد الدالة الإنشائية
Trie، ثم أدخل التعليمات البرمجية التالية:// Search for a word in the trie public bool Search(string word) {انتظر حتى يقوم Copilot بإنشاء التعليمات البرمجية.
قد يقترح Copilot تعليمات برمجية مشابهة لكتلة التعليمات البرمجية التالية:
// Search for a word in the trie public bool Search(string word) { TrieNode current = root; foreach (char c in word) { if (!current.HasChild(c)) { return false; } current = current.Children[c]; } return current.IsEndOfWord; }اضغط على Tab أو انقر فوق قبول لتطبيق اقتراح التعليمات البرمجية.
انتقل إلى أسلوب
AutoSuggest.يعتمد هذا الأسلوب على أسلوب آخر
GetAllWordsWithPrefixغير مكتمل. يمكنك استخدام Copilot لإنشاء هذا الأسلوب.انتقل إلى أسلوب
GetAllWordsWithPrefixوأزل عبارة الإرجاع؛private List<string> GetAllWordsWithPrefix(TrieNode root, string prefix) { }انتظر حتى يقوم Copilot بإنشاء التعليمات البرمجية.
يجب أن يقترح Copilot التعليمات البرمجية تلقائيا عند إزالة عبارة الإرجاع. إذا لم يكن الأمر كما هو، يمكنك محاولة إدخال ما يلي: يجب على
List<string> words =و Copilot إكمال التعليمات البرمجية.قد يقترح Copilot تعليمات برمجية مشابهة لكتلة التعليمات البرمجية التالية:
private List<string> GetAllWordsWithPrefix(TrieNode node, string prefix) { List<string> words = new List<string>(); if (node.IsEndOfWord) { words.Add(prefix); } foreach (var child in node.Children) { words.AddRange(GetAllWordsWithPrefix(child.Value, prefix + child.Key)); } return words; }اضغط على Tab أو انقر فوق قبول لتطبيق اقتراح التعليمات البرمجية.
التحقق من عملك
في هذه المهمة، ستختبر الطرق التي قمت بإنشائها باستخدام Copilot للتحقق من أنها تعمل كما هو متوقع.
افتح ملف Program.cs.
إلغاء التعليق على استدعاء أسلوب
SearchWord:Trie dictionary = InitializeTrie(words); SearchWord(); // PrefixAutocomplete(); // DeleteWord(); // GetSpellingSuggestions();انتقل إلى أسلوب
SearchWord()وقم بإلغاء التعليق على كتلة التعليمات البرمجية التالية:/* if (input != null && dictionary.Search(input)) { Console.WriteLine($"Found \"{input}\" in dictionary"); } */في مستكشف الملفات، انقر بزر الماوس الأيمن فوق ملف Program.cs وانقر فوق فتح في الوحدة الطرفية المتكاملة
أدخل
dotnet runلتشغيل البرنامج.أدخل كلمة للبحث عن مثل "التالي" أو "الفاصوليا"
تحقق من أن الإخراج مشابه للآتي
Enter a word to search for, or press Enter to exit. follows Found "follows" in dictionary Enter a word to search for, or press Enter to exit. beans Did not find "beans" in dictionary Enter a word to search for, or press Enter to exit.إذا كانت التعليمات البرمجية تعرض نتائج مختلفة، فراجع التعليمات البرمجية للعثور على الخطأ وإجراء التحديثات. قم بتشغيل التعليمات البرمجية مرة أخرى لمعرفة ما إذا كنت قد أصلحت المشكلة. متابعة تحديث التعليمات البرمجية وتشغيلها حتى تنتج التعليمات البرمجية النتائج المتوقعة.
التعليق على أي استدعاءات أسلوب وإلغاء التعليق على استدعاء أسلوب
PrefixAutocomplete:Trie dictionary = InitializeTrie(words); // SearchWord(); PrefixAutocomplete(); // DeleteWord(); // GetSpellingSuggestions();أدخل
dotnet runلتشغيل البرنامج.أدخل بادئة للبحث عن مثل "pl" أو "fo"
اضغط على المفتاح Tab للإكمال التلقائي للبادئة. يمكنك الضغط على المفتاح Tab عدة مرات للتنقل بين الاقتراحات. اضغط على مساحة لقبول الاقتراح وبدء كلمة جديدة.
تحقق من أن الإخراج مشابه للآتي
The dictionary contains the following words: as, astronaut, asteroid, are, around, cat, cars, cares, careful, carefully, for, forgot, follows, from, front, mellow, mean, money, monday, monster, place, plan, planet, planets, plans, the, their, they, there, towards, Enter a prefix to search for, then press Tab to cycle through search results. Press Enter to exit. place plan forgotإذا كانت التعليمات البرمجية تعرض نتائج مختلفة، فراجع التعليمات البرمجية للعثور على الخطأ وإجراء التحديثات. قم بتشغيل التعليمات البرمجية مرة أخرى لمعرفة ما إذا كنت قد أصلحت المشكلة. متابعة تحديث التعليمات البرمجية وتشغيلها حتى تنتج التعليمات البرمجية النتائج المتوقعة.
التعليق على استدعاء أسلوب
PrefixAutocomplete.