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; }
از خطاش عکس بگیرین بفرستین
فقط کد رو کپی کنید داخل یک پروژه مثلا کنسول اپلیکیشن خطاش مشخصه.
از کلاس انتزاعی نمیشه شی ساخت
و اینکه ایراد سینتکسی هم دارید
به شکل زیر تغییر بدین
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; }
جوابش رو پیدا کردم و تو این لینک هست که می تونید بررسی کنید.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)