إنشاء تعليمة برمجية باستخدام اقتراحات إكمال التعليمات البرمجية ل GitHub Copilot
يمكن أن يوفر GitHub Copilot اقتراحات إكمال التعليمات البرمجية للعديد من لغات البرمجة ومجموعة واسعة من أطر العمل، ولكنه يعمل بشكل جيد بشكل خاص مع Python وJavaScript وTypeScript وRupe وGo وC# وC++. يتم إنشاء إكمال سطر التعليمات البرمجية استنادا إلى سياق التعليمات البرمجية التي تكتبها. يمكنك قبول الاقتراحات المقدمة من GitHub Copilot أو رفضها أو قبولها جزئيا.
يوفر GitHub Copilot طريقتين لإنشاء إكمال سطر التعليمات البرمجية:
من تعليق: يمكنك إنشاء إكمال سطر التعليمات البرمجية عن طريق كتابة تعليق يصف التعليمات البرمجية التي تريد إنشاؤها. يوفر GitHub Copilot اقتراحات إكمال التعليمات البرمجية استنادا إلى التعليق الذي تكتبه.
من التعليمات البرمجية: يمكنك إنشاء إكمال سطر التعليمات البرمجية عن طريق بدء سطر التعليمات البرمجية، أو بالضغط على Enter بعد سطر التعليمات البرمجية المكتملة. يوفر GitHub Copilot اقتراحات إكمال التعليمات البرمجية استنادا إلى التعليمات البرمجية التي تكتبها.
استخدام GitHub Copilot لإنشاء إكمال سطر التعليمات البرمجية من تعليق
ينشئ GitHub Copilot اقتراحات إكمال التعليمات البرمجية استنادا إلى التعليق والسياق الحالي لتطبيقك.
يمكنك استخدام التعليقات لوصف قصاصات التعليمات البرمجية والأساليب وبنى البيانات وعناصر التعليمات البرمجية الأخرى.
لنفترض أن لديك القصاصة البرمجية التالية:
namespace ReportGenerator;
class QuarterlyIncomeReport
{
static void Main(string[] args)
{
// create a new instance of the class
QuarterlyIncomeReport report = new QuarterlyIncomeReport();
// call the GenerateSalesData method
// call the QuarterlySalesReport method
}
public void QuarterlySalesReport()
{
Console.WriteLine("Quarterly Sales Report");
}
}
على سبيل المثال، يمكن استخدام التعليق التالي لإنشاء بنية بيانات:
// public struct SalesData. Include the following fields: date sold, department name, product ID, quantity sold, unit price
ينشئ GitHub Copilot اقتراحا واحدا أو أكثر لإكمال التعليمات البرمجية استنادا إلى تعليق التعليمات البرمجية وملفات التعليمات البرمجية المفتوحة في المحرر.
لاحظ أنواع البيانات المستخدمة للإعلان عن حقول بنية البيانات. يحدد GitHub Copilot أنواع البيانات وأسماء المتغيرات استنادا إلى التعليمات البرمجية الموجودة وتعليق التعليمات البرمجية. يحاول GitHub Copilot تحديد كيفية استخدام التطبيق للمتغيرات وتحديد أنواع البيانات وفقا لذلك.
عندما ينشئ GitHub Copilot أكثر من اقتراح واحد، يمكنك التنقل بين الاقتراحات عن طريق تحديد الأسهم اليسرى أو اليمنى (> أو <) الموجودة إلى يسار الزر قبول . يتيح لك ذلك مراجعة الاقتراح الذي يناسب احتياجاتك وتحديده.
لا بأس من قبول اقتراح إكمال التعليمات البرمجية الذي لا يتطابق تماما مع ما تريده. ومع ذلك، يجب أن تكون التغييرات المطلوبة "لإصلاح" الاقتراح واضحة. في هذه الحالة، بعض أنواع البيانات ليست ما تريد، ولكن يمكنك ضبطها بعد قبول الإكمال التلقائي المقترح.
إذا لم يكن أي من الخيارات المقترحة مشابها لما تحتاجه، فهناك أمران يمكنك تجربتهما. لفتح علامة تبويب محرر جديدة تحتوي على قائمة اقتراحات أخرى، اضغط على المفاتيح Ctrl + Enter. تفتح تركيبة مفتاح التشغيل السريع هذه علامة تبويب جديدة تحتوي على ما يصل إلى 10 اقتراحات أخرى. يتبع كل اقتراح زر يمكنك استخدامه لقبول الاقتراح. يتم إغلاق علامة التبويب تلقائيا بعد قبول اقتراح. الخيار الآخر هو الضغط على مفتاح Esc لتجاهل الاقتراحات والمحاولة مرة أخرى. يمكنك ضبط تعليق التعليمات البرمجية لتوفير المزيد من السياق ل GitHub Copilot للعمل معه.
إشعار
يمكن أن يقترح GitHub Copilot أحيانا اقتراحا على مراحل. إذا حدث ذلك، يمكنك الضغط على مفتاح الإدخال Enter لمشاهدة مراحل إضافية من الاقتراح بعد الضغط على المفتاح Tab.
لقبول بنية بيانات مقترحة، اضغط على المفتاح Tab أو حدد قبول.
لتعديل أنواع بيانات الحقل، قم بتحديث التعليمات البرمجية الخاصة بك كما يلي:
public struct SalesData
{
public DateOnly dateSold;
public string departmentName;
public int productID;
public int quantitySold;
public double unitPrice;
}
يساعد إجراء تعديلات سريعة على اقتراحات إكمال التعليمات البرمجية على التأكد من أنك تنشئ التعليمات البرمجية التي تريدها. من المهم بشكل خاص إجراء التصحيحات في وقت مبكر من عملية التطوير الخاصة بك عندما لا تزال هناك أجزاء كبيرة من قاعدة التعليمات البرمجية الخاصة بك بحاجة إلى التطوير. تستند إكمالات التعليمات البرمجية اللاحقة إلى التعليمات البرمجية التي كتبتها بالفعل، لذلك من المهم التأكد من أن التعليمات البرمجية الخاصة بك دقيقة قدر الإمكان.
استخدام GitHub Copilot لإنشاء إكمال سطر التعليمات البرمجية من تعليق
ينشئ GitHub Copilot اقتراحات إكمال التعليمات البرمجية استنادا إلى التعليق والسياق الحالي لتطبيقك. يمكنك استخدام التعليقات لوصف قصاصات التعليمات البرمجية والأساليب وبنى البيانات وعناصر التعليمات البرمجية الأخرى.
استخدم الخطوات التالية لإكمال هذا القسم من التمرين:
في ملف Program.cs ، قم بإنشاء سطرين فارغين من التعليمات البرمجية
Mainأسفل الأسلوب .لإنشاء بنية بيانات يمكن استخدامها لإنشاء بيانات اختبار، قم بإنشاء تعليق التعليمات البرمجية التالي، ثم اضغط على Enter:
// public struct SalesData. Include the following fields: date sold, department name, product ID, quantity sold, unit priceينشئ GitHub Copilot اقتراحا واحدا أو أكثر لإكمال التعليمات البرمجية استنادا إلى تعليق التعليمات البرمجية وأي تعليمات برمجية موجودة يعثر عليها في تطبيقك.
خذ دقيقة لمراجعة اقتراحات إكمال التعليمات البرمجية التي يوفرها GitHub Copilot.
إشعار
إذا كان GitHub Copilot ينشئ اقتراحات لأسلوب بدلا من بنية بيانات، فاكتب سلسلة عامة وانتظر تحديث اقتراح إكمال التعليمات البرمجية. يستخدم GitHub Copilot المعلومات الإضافية لتحسين اقتراحاته.
لاحظ أنواع البيانات المستخدمة للإعلان عن حقول بنية البيانات. يحدد GitHub Copilot أنواع البيانات وأسماء المتغيرات استنادا إلى التعليمات البرمجية الموجودة وتعليق التعليمات البرمجية. يحاول GitHub Copilot تحديد كيفية استخدام التطبيق للمتغيرات وتحديد أنواع البيانات وفقا لذلك.
عندما ينشئ GitHub Copilot أكثر من اقتراح واحد، يمكنك التنقل بين الاقتراحات عن طريق تحديد الأسهم اليسرى أو اليمنى (
>أو<) الموجودة إلى يسار الزر قبول . يتيح لك ذلك مراجعة الاقتراح الذي يناسب احتياجاتك وتحديده.لا بأس من قبول اقتراح إكمال التعليمات البرمجية الذي لا يتطابق تماما مع ما تريده. ومع ذلك، يجب أن تكون التغييرات المطلوبة "لإصلاح" الاقتراح واضحة. في هذه الحالة، بعض أنواع البيانات ليست ما تريد، ولكن يمكنك ضبطها بعد قبول الإكمال التلقائي المقترح.
إذا لم يكن أي من الخيارات المقترحة مشابها لما تحتاجه، فهناك أمران يمكنك تجربتهما. لفتح علامة تبويب محرر جديدة تحتوي على قائمة اقتراحات أخرى، اضغط على المفاتيح Ctrl + Enter. تفتح تركيبة مفتاح التشغيل السريع هذه علامة تبويب جديدة تحتوي على ما يصل إلى 10 اقتراحات أخرى. يتبع كل اقتراح زر يمكنك استخدامه لقبول الاقتراح. يتم إغلاق علامة التبويب تلقائيا بعد قبول اقتراح. الخيار الآخر هو الضغط على مفتاح Esc لتجاهل الاقتراحات والمحاولة مرة أخرى. يمكنك ضبط تعليق التعليمات البرمجية لتوفير المزيد من السياق ل GitHub Copilot للعمل معه.
إشعار
يمكن أن يقترح GitHub Copilot أحيانا اقتراحا على مراحل. إذا حدث ذلك، يمكنك الضغط على مفتاح الإدخال Enter لمشاهدة مراحل إضافية من الاقتراح بعد الضغط على المفتاح Tab.
لقبول بنية بيانات مقترحة، اضغط على المفتاح Tab أو حدد قبول.
لتعديل أنواع بيانات الحقل، قم بتحديث التعليمات البرمجية الخاصة بك كما يلي:
public struct SalesData { public DateOnly dateSold; public string departmentName; public int productID; public int quantitySold; public double unitPrice; }يساعد إجراء تعديلات سريعة على اقتراحات إكمال التعليمات البرمجية على التأكد من أنك تنشئ التعليمات البرمجية التي تريدها. من المهم بشكل خاص إجراء التصحيحات في وقت مبكر من عملية التطوير الخاصة بك عندما لا تزال هناك أجزاء كبيرة من قاعدة التعليمات البرمجية الخاصة بك بحاجة إلى التطوير. تستند إكمالات التعليمات البرمجية إلى التعليمات البرمجية الموجودة لديك، لذلك من المهم التأكد من أن التعليمات البرمجية الخاصة بك دقيقة قدر الإمكان.
إنشاء سطرين فارغين من التعليمات البرمجية
SalesDataأسفل بنية البيانات.لإنشاء أسلوب يقوم بإنشاء بيانات الاختبار باستخدام
SalesDataبنية البيانات، اكتب تعليق التعليمات البرمجية التالي ثم اضغط على Enter:/* the GenerateSalesData method returns 1000 SalesData records. It assigns random values to each field of the data structure */خذ دقيقة لمراجعة اقتراحات إكمال التعليمات البرمجية التي يوفرها GitHub Copilot.
لاحظ أن
GenerateSalesDataالأسلوب مصمم لإرجاع صفيف منSalesDataالكائنات. ينشئ الأسلوب 1000 سجل من بيانات الاختبار، مع تعيين قيم عشوائية لكل حقل منSalesDataحقول بنية البيانات.
يجب عليك دائما مراجعة الاقتراحات المقترحة من قبل GitHub Copilot وGitHub Copilot Chat، حتى عندما تبدو صحيحة.
إشعار
إذا اقترح GitHub Copilot سطر تعليمات برمجية واحد بدلا من أسلوب مكتمل
GenerateSalesData، فاضغط على Ctrl + Enter لفتح علامة التبويب GitHub Copilot Suggestions. راجع الاقتراحات الموجودة في علامة التبويب الجديدة. في الخطوة التالية، استخدم الزر "قبول الاقتراح #" لقبول الاقتراح. يقدم GitHub Copilot اقتراحات بشكل متزايد في بعض الأحيان. على الرغم من أنه يمكنك قبول إكمال التعليمات البرمجية بشكل متزايد، فمن الأفضل استخدام علامة التبويب GitHub Copilot Suggestions لمراجعة الاقتراح الكامل قبل اتخاذ قرار بقبوله أو تجاهله.قم بالتمرير عبر اقتراحات إكمال التعليمات البرمجية وحدد أفضل تطابق للمتطلبات.
لقبول إكمال التعليمات البرمجية، اضغط على المفتاح Tab.
لاحظ أن اقتراح إكمال التعليمات البرمجية يتضمن خطأ في بناء الجملة في التعليمات البرمجية
DateSoldالمستخدمة لإنشاء الحقل.DateOnlyيقبل ثلاث قيم عدد صحيح يجب إدراجها بالترتيب الصحيح: السنة، الشهر، اليوم.لتحديد سنة واحدة للتعليمات البرمجية المستخدمة لإنشاء
DateSoldالحقل، قم بتحديث سطر التعليمات البرمجية كما يلي:salesData[i].DateSold = new DateOnly(2023, random.Next(1, 13), random.Next(1, 29));إذا لزم الأمر، اضبط أسطر التعليمات البرمجية الأخرى لمطابقة قصاصة التعليمات البرمجية التالية:
public SalesData[] GenerateSalesData() { SalesData[] salesData = new SalesData[1000]; Random random = new Random(); for (int i = 0; i < salesData.Length; i++) { salesData[i].dateSold = new DateOnly(2023, random.Next(1, 13), random.Next(1, 29)); salesData[i].departmentName = "Department " + random.Next(1, 11); salesData[i].productID = random.Next(1, 101); salesData[i].quantitySold = random.Next(1, 101); salesData[i].unitPrice = random.NextDouble() * 100; } return salesData; }
القدرة على إنشاء التعليمات البرمجية من تعليقات التعليمات البرمجية هي ميزة قوية من GitHub Copilot. مع تعليقين فقط، تمكنت من إنشاء بنية بيانات وطريقة تنشئ بيانات اختبار.
استخدام GitHub Copilot لإنشاء إكمال سطر التعليمات البرمجية
يمكن ل GitHub Copilot إنشاء إكمال سطر التعليمات البرمجية استنادا إلى التعليمات البرمجية التي تدخلها. يمكنك إنشاء إكمال سطر التعليمات البرمجية بطريقتين:
- ابدأ بإدخال سطر التعليمات البرمجية، ثم انتظر GitHub Copilot لاقتراح الإكمال التلقائي لخط التعليمات البرمجية غير المكتمل.
- أدخل سطر تعليمة برمجية كاملا، واضغط على المفتاح Enter ، ثم انتظر حتى يقترح GitHub Copilot الإكمال التلقائي لخط التعليمات البرمجية التالي.
إشعار
ينشئ GitHub Copilot إكمالات التعليمات البرمجية المقترحة استنادا إلى التعليمات البرمجية التي تدخلها والسياق المحدد بواسطة التعليمات البرمجية داخل تطبيقك. كلما زاد عدد التعليمات البرمجية المتوفرة في تطبيقك، زاد السياق الذي يحتوي عليه GitHub Copilot عند إنشاء استجابة. يمكن أن يستند GitHub Copilot إلى الاستجابات على التعليمات البرمجية الموجودة لديك، لذا فإن جودة التعليمات البرمجية الخاصة بك مهمة. مع زيادة حجم التعليمات البرمجية الموجودة وجودتها، تزداد جودة وموثوقية إكمال سطر التعليمات البرمجية التي اقترحها GitHub Copilot. GitHub Copilot جيد في إنشاء إكمالات سطر التعليمات البرمجية لمهام البرمجة الشائعة والأنماط، خاصة عندما يحتاج تسلسل المكونات ذات الصلة إلى الإنشاء.
في هذا الجزء من التمرين، يمكنك العمل على QuarterlySalesReport الأسلوب .
فيما يلي المهام التي تحتاج إلى إكمالها:
- قم بتحديث منشئ الأسلوب بمعلمة تقبل مجموعة
SalesDataالكائنات الخاصة بك. - استخدم GitHub Copilot لإنشاء إكمالات سطر التعليمات البرمجية التي تعالج بيانات المبيعات للتقرير ربع السنوي.
- قم بتشغيل التطبيق ومراجعة تقرير المبيعات ربع السنوي.
استخدم الخطوات التالية لإكمال هذا القسم من التمرين:
تحديث منشئ الأسلوب على
QuarterlySalesReportالنحو التالي:public void QuarterlySalesReport(SalesData[] salesData)خذ دقيقة للنظر في التعليمات البرمجية التي تحتاج إلى تطويرها.
المفهوم هو مباشرة إلى الأمام. تريد أن تحسب التعليمات البرمجية الخاصة بك المبيعات ربع السنوية استنادا إلى بيانات المبيعات الخاصة بك ثم تكتب تقريرا. للقيام بذلك، تحتاج التعليمات البرمجية الخاصة بك إلى:
- التكرار من خلال
salesDataالمجموعة. - حساب قيمة كل عملية بيع استنادا إلى الكمية المباعة وسعر الوحدة.
- استخدم تاريخ المبيعات لتحديد ربع السنة الذي تنتمي إليه عملية البيع.
- جمع المبيعات لكل ربع عام.
- اكتب تقريرا عن المبيعات حسب ربع السنة.
أحد الخيارات هو البدء في إدخال التعليمات البرمجية لحلقة
foreachثم معرفة ما يقترحه GitHub Copilot.- التكرار من خلال
في
QuarterlySalesReportالأسلوب ، قم بإنشاء سطر تعليمة برمجية جديد في أعلى كتلة التعليمات البرمجية.يجب أن يكون هناك سطر تعليمة برمجية فارغ واحد على الأقل بين سطر التعليمات البرمجية الجديد وخط التعليمات البرمجية
Console.WriteLine()الذي يحتوي على .لإنشاء إكمال سطر التعليمات البرمجية، اكتب
foreach (ثم انتظر GitHub Copilot لاقتراح خيارات إكمال سطر التعليمات البرمجية.راجع إكمال التعليمات البرمجية المقترحة من قبل GitHub Copilot.
إكمال التعليمات البرمجية المقترح ليس ما تريده.
على الرغم من أن GitHub Copilot يقترح
foreachحلقة تتكرر من خلالsalesData، لا يوجد تحليل أو حسابات داخل الحلقة. تتضمنConsole.WriteLineالتعليمات البرمجية المقترحة عبارات لا تريدها أو تحتاجها.خذ دقيقة للنظر في سبب اقتراح
Console.WriteLineGitHub Copilot عبارات.تذكر أن GitHub Copilot ينشئ اقتراحات إكمال التعليمات البرمجية استنادا إلى سياق التعليمات البرمجية الخاصة بك. في هذه الحالة، ليس لديك الكثير من التعليمات البرمجية ل GitHub Copilot للنظر فيها. والوضع يزداد سوءا.
التعليمات البرمجية التي يراها GitHub Copilot داخل أسلوبك هي عبارة
Console.WriteLine. مع عدم توفر سياق آخر ضمن الأسلوب ولا توجد أساليب مشابهة في قاعدة التعليمات البرمجية الخاصة بك للرسم منها، يخلص GitHub Copilot إلى أنك قد ترغبConsole.WriteLineفي عبارات داخل الحلقةforeach.يعمل GitHub Copilot بشكل أفضل عندما تكون التعليمات البرمجية نظيفة ومركزة. إذا رأيت تعليقات أو عبارات تعليمات برمجية غير زائدة في التعليمات البرمجية الخاصة بك، فقد تحتاج إلى إزالتها قبل محاولة استخدام إكمال التعليمات البرمجية GitHub Copilot.
لتنظيف التعليمات البرمجية قبل محاولة GitHub Copilot أخرى، أكمل الخطوات التالية:
- إلغاء إكمال التعليمات البرمجية المقترحة
foreach (. - احذف العبارة الجزئية
foreach (التي أدخلتها. - حذف العبارة
Console.WriteLineمن الأسلوب الخاص بكQuarterlySalesReport.
الآن يجب أن تكون مستعدا لتجربة GitHub Copilot مرة أخرى.
- إلغاء إكمال التعليمات البرمجية المقترحة
تأكد من أن أسلوبك
QuarterlySalesReportيبدو مشابها للتعليمات البرمجية التالية:public void QuarterlySalesReport(SalesData[] salesData) { }ضع المؤشر على سطر تعليمة برمجية فارغ داخل
QuarterlySalesReportالأسلوب، ثم اضغط على مفتاح الإدخال Enter.قد يستغرق الأمر لحظة حتى يقوم GitHub Copilot بإنشاء إكمال التعليمات البرمجية المقترحة.
خذ دقيقة لمراجعة إكمال التعليمات البرمجية المقترحة.
هام
من المحتمل أن تختلف إكمالات التعليمات البرمجية التي تتلقاها عن الاقتراحات الموضحة في لقطة الشاشة التالية. على الرغم من أن GitHub Copilot لديه اسم أسلوب ومعلمة للعمل معه فقط، فقد يكون ذلك كافيا لإنشاء اقتراحات مفيدة. يجب أن تشاهد اقتراحات تحسب المبيعات حسب ربع السنة. يمكن أن يؤدي رفض الاقتراحات والمحاولة مرة أخرى إلى تقديم نتائج مختلفة.
يمكنك التنقل بين الاقتراحات عن طريق تحديد
>أو<.لاحظ أن إكمال التعليمات البرمجية المقترحة يتكرر من خلال بيانات المبيعات وينفذ حسابات مبيعات ربع سنوية.
لقبول إكمال التعليمات البرمجية المقترحة، اضغط على المفتاح Tab.
يحسب إكمال التعليمات البرمجية المقترحة الدخل ربع السنوي ويعرضه استنادا إلى بيانات المبيعات.
// create a dictionary to store the quarterly sales data Dictionary<string, double> quarterlySales = new Dictionary<string, double>(); // iterate through the sales data foreach (SalesData data in salesData) { // calculate the total sales for each quarter string quarter = GetQuarter(data.dateSold.Month); double totalSales = data.quantitySold * data.unitPrice; if (quarterlySales.ContainsKey(quarter)) { quarterlySales[quarter] += totalSales; } else { quarterlySales.Add(quarter, totalSales); } } // display the quarterly sales report Console.WriteLine("Quarterly Sales Report"); Console.WriteLine("----------------------"); foreach (KeyValuePair<string, double> quarter in quarterlySales) { Console.WriteLine(entry.Key + ": $" + entry.Value); }لاحظ أن
GetQuarterالأسلوب يستخدم شهر البيع لتحديد ربع البيع.GetQuarterيتم إنشاء الأسلوب التالي.إنشاء سطرين فارغين من التعليمات البرمجية
QuarterlySalesReportأسفل الأسلوب .لاحظ أن GitHub Copilot يقترح إكمال التعليمات البرمجية
GetQuarterللأسلوب.مع السياق الذي توفره
QuarterlySalesReportالطريقة ، يمكن ل GitHub Copilot بسهولة إنشاء إكمال التعليمات البرمجية للأسلوبGetQuarterالذي يحدد ربع السنة استنادا إلى شهر البيع.خذ دقيقة لمراجعة إكمال سطر التعليمات البرمجية المقترح للأسلوب
GetQuarter.
لقبول إكمال التعليمات البرمجية المقترحة، اضغط على المفتاح Tab.
public string GetQuarter(int month) { if (month >= 1 && month <= 3) { return "Q1"; } else if (month >= 4 && month <= 6) { return "Q2"; } else if (month >= 7 && month <= 9) { return "Q3"; } else { return "Q4"; } }لاحظ أن
Mainالأسلوب يحتاج إلى إكمال قبل أن تتمكن من تشغيل التعليمات البرمجية.يمكنك استخدام التعليقات في
Mainالأسلوب لتحديث التعليمات البرمجية الخاصة بك.ضع المؤشر في نهاية تعليق التعليمات البرمجية
// call the GenerateSalesData method، ثم اضغط على مفتاح الإدخال Enter.يستخدم GitHub Copilot التعليق لاقتراح بيان استدعاء للأسلوب.
راجع ثم اقبل إكمال التعليمات البرمجية المقترحة من قبل GitHub Copilot.
كرر العملية لتعليق التعليمات البرمجية
// call the QuarterlySalesReport method.يجب أن يحتوي الأسلوب الخاص بك
Mainعلى التعليمات البرمجية التالية:static void Main(string[] args) { // create a new instance of the class QuarterlyIncomeReport report = new QuarterlyIncomeReport(); // call the GenerateSalesData method SalesData[] salesData = report.GenerateSalesData(); // call the QuarterlySalesReport method report.QuarterlySalesReport(salesData); }خذ دقيقة لمراجعة التعليمات البرمجية في فصلك
QuarterlyIncomeReportالدراسي.namespace ReportGenerator { class QuarterlyIncomeReport { static void Main(string[] args) { // create a new instance of the class QuarterlyIncomeReport report = new QuarterlyIncomeReport(); // call the GenerateSalesData method SalesData[] salesData = report.GenerateSalesData(); // call the QuarterlySalesReport method report.QuarterlySalesReport(salesData); } /* public struct SalesData includes the following fields: date sold, department name, product ID, quantity sold, unit price */ public struct SalesData { public DateOnly dateSold; public string departmentName; public int productID; public int quantitySold; public double unitPrice; } /* the GenerateSalesData method returns 1000 SalesData records. It assigns random values to each field of the data structure */ public SalesData[] GenerateSalesData() { SalesData[] salesData = new SalesData[1000]; Random random = new Random(); for (int i = 0; i < 1000; i++) { salesData[i].dateSold = new DateOnly(2023, random.Next(1, 13), random.Next(1, 29)); salesData[i].departmentName = "Department " + random.Next(1, 11); salesData[i].productID = random.Next(1, 101); salesData[i].quantitySold = random.Next(1, 101); salesData[i].unitPrice = random.NextDouble() * 100; } return salesData; } public void QuarterlySalesReport(SalesData[] salesData) { // create a dictionary to store the quarterly sales data Dictionary<string, double> quarterlySales = new Dictionary<string, double>(); // iterate through the sales data foreach (SalesData data in salesData) { // calculate the total sales for each quarter string quarter = GetQuarter(data.dateSold.Month); double totalSales = data.quantitySold * data.unitPrice; if (quarterlySales.ContainsKey(quarter)) { quarterlySales[quarter] += totalSales; } else { quarterlySales.Add(quarter, totalSales); } } // display the quarterly sales report Console.WriteLine("Quarterly Sales Report"); Console.WriteLine("----------------------"); foreach (KeyValuePair<string, double> quarter in quarterlySales) { Console.WriteLine(entry.Key + ": $" + entry.Value); } } public string GetQuarter(int month) { if (month >= 1 && month <= 3) { return "Q1"; } else if (month >= 4 && month <= 6) { return "Q2"; } else if (month >= 7 && month <= 9) { return "Q3"; } else { return "Q4"; } } } }تم إنشاء هذه التعليمة البرمجية، بالكامل تقريبا، باستخدام إكمال سطر التعليمات البرمجية التي تم إنشاؤها بواسطة GitHub Copilot. ومع ذلك، فإن مراجعتك لاقتراحات التعليمات البرمجية مهمة، وكانت هناك حاجة إلى تصحيحات. يجب عليك دائما مراجعة إكمال التعليمات البرمجية المقترحة من قبل GitHub Copilot للتأكد من أن التعليمات البرمجية تفي بمتطلباتك.
لمراجعة إخراج التقرير، قم بتشغيل التطبيق.
افتح نافذة Terminal في Visual Studio Code، ثم أدخل الأمر التالي:
dotnet runيجب أن يعرض الإخراج تقرير الدخل ربع السنوي، الذي يعرض اسم القسم وربع السنة والدخل لكل قسم وربع السنة الممثل في بيانات الاختبار.
راجع الإخراج في نافذة Terminal.
على الرغم من أن النتائج ربع السنوية تستند إلى قيم رقمية عشوائية، يجب أن تشاهد تقريرا منسقا مشابها للإخراج التالي:
Quarterly Sales Report ---------------------- Q3: $635637.5019563352 Q4: $672247.315297204 Q2: $667269.194630603 Q1: $642769.2700531208
الملخص
تعد عمليات إكمال سطر التعليمات البرمجية ميزة قوية في GitHub Copilot التي يمكن أن تساعدك على إنشاء التعليمات البرمجية بسرعة وكفاءة. باستخدام التعليقات لوصف التعليمات البرمجية التي تريد إنشاؤها، يمكنك إنشاء بنيات البيانات والأساليب وعناصر التعليمات البرمجية الأخرى بأقل جهد ممكن. بالإضافة إلى ذلك، يمكن ل GitHub Copilot إنشاء إكمال سطر التعليمات البرمجية استنادا إلى التعليمات البرمجية التي تدخلها، ما يسمح لك بإنشاء تطبيقات معقدة بسهولة.