کلاس جنریک
تعریف یک کلاس جنریک بسیار شبیه به تعریف یک متد جنریک است. کلاس جنریک دارای یک علامت بزرگتر و کوچکتر و یک نوع پارامتر خاص میباشد. برنامه زیر مثالی از یک کلاس جنریک میباشد :
using System; public class GenericClass<T> { private T someField; public GenericClass(T someVariable) { someField = someVariable; } public T SomeProperty { get { return someField; } set { someField = value; } } } public class Program { public static void Main() { GenericClass<double> genericDouble = new GenericClass<double>(30.50); GenericClass<int> genericInt = new GenericClass<int>(10); Console.WriteLine("genericDouble.SomeProperty = {0}", genericDouble.SomeProperty); Console.WriteLine("genericInt.SomeProperty = {0}", genericInt.SomeProperty); genericDouble.SomeProperty = 100.32; genericInt.SompProperty = 50; } }
genericDouble.SomeProperty = 30.50 genericInt.SomeProperty = 10
در مثال بالا یک کلاس جبریک که دارای یک فیلد، یک خاصیت و یک سازنده است را ایجاد میکنیم. تمام مکانهایی که ورودی T در آنها قرار دارد بعداً توسط انواعی که مد نظر شما است، جایگزین میشوند. وقتی یک نمونه از کلاس جنریک تان ایجاد میکنید، یک نوع هم برای آن در نظر بگیرید (<int>). مانند متدهای جنریک میتوانید چندین نوع پارامتر به کلاسهای جنریک اختصاص دهید.
public class GenericClass<T1, T2, T3> { private T1 someField1; private T2 someField2; private T3 someField3; }
چون نمیدانید T1، T2 و T3 از چه نوعی هستند، نمیتوانید مانند مثال زیر، از آنها نمونه جدید ایجاد کنید.
public GenericClass //Constructor { someField1 = new T1(); someField2 = new T2(); someField3 = new T3(); }
کلاسهای غیر جنریک میتوانند از کلاسهای جنریک ارث بری کنند، اما باید یک نوع برای پارامترکلاس پایه جنریک تعریف کنید.
public class MyClass : GenericClass<int> { }
یک کلاس جنریک هم میتواند از یک کلاس غیر جنریک ارث بری کند.
مشکل حل شد مچکرم!
درود
ببخشید کد زیر رو توی این آموزش نوشته بودین :
میخاستم بدونم چجوری میشه از این کلاس جنریک ک چندین نوع داره (T1, T2 , T3)
ازش یک نمونه بسازیم؟
من هرکاری کردم نشد
از اموزش های خوبتون واقعا ممنون هستم خیلی به دردم خورد