مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

behroz.faraji@hotmail.com

عضویت از 1394/12/02

خطای کد زیر را چگونه رفع کنم؟!

  • سه شنبه 12 تیر 1397
  • 11:42
تشکر میکنم
public class Program
{
    private static void Main(string[] args)
    {
        BaseClass<IComparable> baseClass;
        baseClass = DateTime.Now.Ticks == 100 ? new Age(110) :  new Name("behroz");

        Console.WriteLine(baseClass.Get());
        Console.ReadKey();
    }
}
public abstract class BaseClass<T> where T : IComparable
{
    protected readonly T Data;

    protected BaseClass(T data) => Data = data;
    public abstract T Get();
}
public class Name : BaseClass<String>
{
    public Name(string data) : base(data) { }
    public override string Get() => "Name :" + Data;
}
public class Age : BaseClass<Int64>
{
    public Age(Int64 data) : base(data) { }
    public override Int64 Get() => 10 + Data;
}

پاسخ های این پرسش

تعداد پاسخ ها : 4 پاسخ
کاربر سایت

salman_b

عضویت از 1396/02/18

  • چهارشنبه 13 تیر 1397
  • 14:45

از خطاش عکس بگیرین بفرستین

کاربر سایت

behroz.faraji@hotmail.com

عضویت از 1394/12/02

  • چهارشنبه 13 تیر 1397
  • 15:19

فقط کد رو کپی کنید داخل یک پروژه مثلا کنسول اپلیکیشن خطاش مشخصه.

کاربر سایت

salman_b

عضویت از 1396/02/18

  • چهارشنبه 13 تیر 1397
  • 18:41

از کلاس انتزاعی نمیشه شی ساخت

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

به شکل زیر تغییر بدین

    public class Program
    {
        private static void Main(string[] args)
        {
            object temp;
            if (DateTime.Now.Ticks == 100)
            {
                temp = new Age(100);
            }
            else
            {
                temp = new Name("behroz");
            }

            if(temp.GetType() == typeof(Age))
            {
                Console.WriteLine((temp as Age).Get());
            }
            else
            {
                Console.WriteLine((temp as Name).Get());
            }
            
            Console.ReadKey();
        }
    }
    public abstract class BaseClass<T> where T : IComparable
    {
        protected readonly T Data;

        protected BaseClass(T data) { Data = data; }
        public abstract T Get();
    }
    public class Name : BaseClass<String>
    {
        public Name(string data) : base(data) { }
        public override string Get() => "Name :" + Data;
    }
    public class Age : BaseClass<Int64>
    {
        public Age(Int64 data) : base(data) { }
        public override Int64 Get() => 10 + Data;
    }

کاربر سایت

behruoz.faraji@gmail.com

عضویت از 1396/01/04

  • پنجشنبه 14 تیر 1397
  • 16:52

جوابش رو پیدا کردم و تو این لینک هست که می تونید بررسی کنید.

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)