سعد الغامدي2 نشر 7 يوليو 2023 أرسل تقرير نشر 7 يوليو 2023 (معدل) وين المشكلة في الكود وكيف يكون ترتيب الميثود والكلاسات في لغة الc# تم التعديل في 7 يوليو 2023 بواسطة Mustafa Suleiman تعديل عنوان السؤال 1 اقتباس
0 Mustafa Suleiman نشر 7 يوليو 2023 أرسل تقرير نشر 7 يوليو 2023 المشكلة الأولى (CS5001) سببها أنه لا يتم العثور على طريقة Main الثابتة في البرنامج، وطريقة Main هي نقطة البداية الرئيسية لتنفيذ البرنامج، أي يجب أن تقوم بإضافة طريقة Main إلى الكود كالتالي: public static void Main(string[] args) { // الكود هنا } ولاحظ أنك قمت بكتابة Main بحرف m صغير وليس كبير. أما بالنسبة للمشكلة الثانية (CS8600)، فتحدث عندما تحاول تحويل قيمة قد تكون قيمة فارغة (null) إلى نوع غير قابل للاشتقاق مما يعني أنه تم استخدام قيمة قد تكون فارغة (null) في مكان لا يقبل القيم الفارغة. والصحيح هو استخدام Convert.ToInt32 لتحويل الإدخال المقروء من Console.ReadLine إلى قيمة صحيحة وتخزينها في المتغير age. ففي السطر name = Console.ReadLine(), إذا قام المستخدم بترك الإدخال فارغًا، فإن Console.ReadLine() ستعيد قيمة فارغة (null)، إذا كانت name معرفة كنوع غير قابل للاشتقاق (non-nullable type)، فسيحدث خطأ CS8600، وتستطيع يمكنك استخدام نوع قابل للاشتقاق لـ name من خلال استخدام string? بدلاً من string. وفي السطر age = Convert.ToInt32(Console.ReadLine()), إذا قام المستخدم بإدخال قيمة غير صحيحة أو ترك الإدخال فارغًا، فإن Console.ReadLine() قد تعيد قيمة فارغة (null). وبما أن age هو من نوع int (نوع غير قابل للاشتقاق)، فسيحدث خطأ CS8600، لذا عليك استخدام int? بدلاً من int لتجنب خطأ CS8600 وللسماح بتخزين القيمة الفارغة (null) في حالة إدخال غير صحيح. ولكن سيظهر لديك تنبيه آخر وهو CS8632: The annotation for nullable reference types should only be used in code within a '#nullable' annotations context. حيث أنه في لغة C# 8.0 وما بعدها، يمكن استخدام تعليقات Nullable Reference Types لتوضيح قابلية القيم الفارغة (nullability) للمراجعات، ويتم استخدامها لتوضيح ما إذا كانت المراجعات قد يتم تعيينها بقيمة فارغة (null) أم لا، ولكن، يجب تعيين السياق الخاص بتعليقات Nullable Reference Types باستخدام تعليمة '#nullable enable' في بداية الملف الذي يستخدم تلك التعليقات أي وضع السطر التالي: #nullable enable وبعد التعديلات السابقة يصبح الكود كالتالي: #nullable enable using System; namespace pl { class Program { static void Main(string[] args) { string? name; Console.WriteLine("enter your name"); name = Console.ReadLine(); Console.WriteLine("enter your age"); string? ageInput = Console.ReadLine(); int? age = !string.IsNullOrEmpty(ageInput) ? Convert.ToInt32(ageInput) : null; if (age > 20 && name != null) { Console.WriteLine($"welcome MR{name}"); } else if (name != null) { Console.WriteLine($"welcome {name}"); } } } } دروس ومقالات لغة C# في أكاديمية حسوب اقتباس
0 عبدالباسط ابراهيم نشر 8 يوليو 2023 أرسل تقرير نشر 8 يوليو 2023 حسب الكود الذي تم وضعه، هناك اثنين من الأخطاء: الخطأ الأول: "Program does not contain a static "Main" method suitable for an entry point" هذا الخطأ يحدث عندما يفتقد البرنامج الدالة الرئيسية (Main) التي تعتبر نقطة الدخول الرئيسية لتنفيذ البرنامج. يمكن إصلاح هذا الخطأ عن طريق إضافة دالة Main إلى البرنامج، والتأكد من أن تكون الكتابة بالحروف الكبيرة (Main). الخطأ الثاني: "Converting null literal or possible null value to non-nullable type" هذا الخطأ يحدث عندما يتم تحويل قيمة محتملة أن تكون فارغة (null) إلى نوع غير قابل للاحتواء على قيمة فارغة (nullable type). في الكود الذي وضعته، يتم استخدام دالة Console.ReadLine() للاستماع إلى إدخال المستخدم. إذا لم يقم المستخدم بإدخال أي شيء، فإن القيمة التي سيتم استردادها من الدالة هي قيمة فارغة (null). لتجنب هذا الخطأ، يمكن استخدام عبارة التحقق من الصحة (null check) للتحقق من عدم وجود قيمة فارغة قبل تحويلها إلى نوع غير قابل للاحتواء على قيمة فارغة. وفي الكود الصحيح، يمكن استخدام دالة Convert.ToInt32() لتحويل الإدخال إلى نوع int، والتي تقوم بإجراء التحقق من الصحة بشكل صحيح. المثال الصحيح للكود هو كما يلي: using System; namespace pl { class Program { static void Main(string[] args) { int age; string name; Console.WriteLine("Enter your name:"); name = Console.ReadLine(); Console.WriteLine("Enter your age:"); age = Convert.ToInt32(Console.ReadLine()); if (age > 20) { Console.WriteLine($"Welcome MR {name}"); } else { Console.WriteLine($"Welcome {name}"); } } } } اقتباس
السؤال
سعد الغامدي2
وين المشكلة في الكود وكيف يكون ترتيب الميثود والكلاسات في لغة الc#
تعديل عنوان السؤال
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.