تا %60 درصد تخفیف برای تنها 2 نفر با کد 82J5Y05F + صدور گواهینامه فقط تا
000000
حمیده سلامی

راهنمایی در کد نوشته شده

با سلام . مشکل این کد در استفاده از توابع مجازی چیه؟؟ ( ممنون میشم راهنمایی کنید)

class Program
    {
        static void Main(string[] args)
        {
            circle c = new circle();
            c.calculate;
            Console.ReadKey();
        }
         
           class circle
        {
            public static void circle1()
            {
                int X;
                Console.WriteLine("please enter x:");
                X = int.Parse(Console.ReadLine());
            }
            public virtual void calculate(int x)
            {
                Console.WriteLine("area1 ={ 0}", 2 * 3.14 * x);
            }
            public override void calculate(int x)
            {
                Console.WriteLine("s ={ 0}", 3.14 * x*x);
            }
        }
    }  
این سوال 2 پاسخ دارد.
لذت یادگیری با توسینسو
به عنوان شخصی که مدت هاست از سایت توسینسو استفاده می کنم باید بگم که واقعاً یکی از بهترین مرجع ها برای ارتقاء دانش شخصی هست. دوره های سایت، راهکارها و مطالب، همگی عالی هستند.

سلام به شما دوست عزیز.

مشکلاتی که کد شما داره اینه که اول شما داخل تابع main برای فراخوانی تابع فقط اسم تابع calculate رو نوشتید و ورودی و آرگومانش رو مشخص نکردید.

مشکل دومی که برنامه شما داره اینه که هم یک متد مجازی دارید و هم یه متد واقعی. توی یه کلاس شما حق این کار را ندارید و باید در یک کلاس شما یک متد را به صورت مجازی تعریف کنید و در کلاس فرزند آن را override کنید. من کد شما رو به شکل زیر تغییر دادم

public class CircleAbstract
        {
            public virtual void calculate(int x)
            {
                Console.WriteLine("area1 ={ 0}", 2 * 3.14 * x);
            }
        }
        class circle:CircleAbstract
        {
            public static void circle1()
            {
                int X;
                Console.WriteLine("please enter x:");
                X = int.Parse(Console.ReadLine());
            }
           
            public override void calculate(int x)
            {
                Console.WriteLine("s ={ 0}", 3.14 * x * x);
            }
        }
        static void Main(string[] args)
        {
            circle c = new circle();
            c.calculate(6);
            Console.ReadKey();
}
کانال تلگرام، اینستاگرام، توییتر: @mehdiadeli9
  • انتخاب شده به عنوان جواب توسط 1 نفر
حمیده سلامی

بعد یک سوال دیگه اینکه الان در این کد شما برای x عدد 6 رو در نظر گرفتید درصورتی که من میخواستم کد یجوری باشه که از کاربر عدد رو بگیره و ذخیره کنه که در یک قسمت از کد هم اینو نوشتم در این صورت x هر عددی میتونه باشه. ولی الان x 6 هست. میشه درباره ی این هم توضیح بدید؟؟ممنون

توماس ادیسون: «۱٪ موفقیت انگیزه و ۹۹٪ آن سخت تلاش کردن است.»

قسمت main را به شکل زیر تغییر بدید

  circle c = new circle();
          
  int num;
Console.WriteLine("Enter a number");
            num = int.Parse(Console.ReadLine());
            c.calculate(num);
            Console.ReadKey();
کانال تلگرام، اینستاگرام، توییتر: @mehdiadeli9
  • انتخاب شده به عنوان جواب توسط 1 نفر
پاسخ شما
برای ارسال پاسخ خود وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر