کالکشن های جنریک در شئ گرایی
نام دوره: زبان سی شارپ مقدماتی
نویسنده: علی مقدم جاه (مدرس دوره)
نحوه استفاده از کالکشن های جنریک در شئ گرایی
در پستهای آموزش کلاس چیست؟ و کالکشن چیست؟، با مفهوم این دو محبث اصلی در برنامهنویسی آشنا شدید.
درنتیجه قطعا میدانید که در کلاسها خود یک نوع دادهای بوده و ما به عنوان برنامهنویس، میتوانیم برای ذخیره کردن دادههای خودمان از کلاسها استفاده کنیم؛ دراینصورت قطعا پس از تعریف کلاس، نیاز به مشخص کردن اعضاء این کلاس داریم:
با نحوه تعریف یک کلاس جدید و تعریف کردن اعضا آن، در این پست آموزشی ایجاد کلاس آشنا شدهاید.
public class Student
{
public int StudentId { get; set; }
public string StudentName { get; set; }
public string StudentFamily { get; set; }
public void string Print()
{
Console.WriteLine($"Id: {StudentId}\tName: {StudentName}\tFamily : {StudentFamily}");
}
}
همانطور که در مثال بالا مشاهده میکنید، ما یک کلاس به نام Student با سه پراپرتی و یک متد برای چاپ آن پراپرتیها تعریف کردهایم، اما آیا یک دانشجو تنها نام و نام خانوادگی و شماره موبایل و کد ملی و … دارد؟
قطعا خیر!
مهمترین هدف دانشجو از عضویت در سایت دانشگاه، در وهله اول انتخاب واحد است.
همانطور که میدانید، انتخاب واحد یعنی انتخاب چندین درس در لیست واحدهای انتخاب شده توسط دانشجو!
درنتیجه این دانشجو، نیاز به یک لیست از جنس کلاس درس دارد.
پس اول کلاس درس یا همان Course را ایجاد میکنیم:
public class Course
{
public int CourseId { get; set; }
public string CourseName { get; set; }
public void string Print()
{
Console.WriteLine($"Id: {CourseId }\tName: {CourseName }");
}
}
حال که کلاس Course آماده شد، میتوانیم یک لیست جنریک از نوع داده Course به عنوان پراپرتی در کلاس Student تعریف کنیم.
اگر با کالکشنهای جنریک آشنایی ندارید، لطفا ابتدا این پست آموزشی را مطالعه نمایید.
خب بریم سر وقت تعریف یک لیست جنریک از جنس Course در کلاس Student:
public class Student
{
public int StudentId { get; set; }
public string StudentName { get; set; }
public string StudentFamily { get; set; }
public List<Course> CourseList = new List<Course>();
public void string Print()
{
Console.WriteLine($"Id: {StudentId}\tName: {StudentName}\tFamily : {StudentFamily}");
}
}
همانطور که در خط ۶ مشاهده میکنید، لیستی از جنس Course را به عنوان پراپرتی در کلاس Student تعریف کردیم.
حال هر یک از دانشجویان، علاوه بر id، name و family، یک لیست از دروسی که انتخاب واحد کردهاند را هم در دیتابیس دارند.
اما نکته مهم این است که چطور با استفاده از متد Add، دروس انتخاب شده توسط دانشجو را به لیست CourseList اضافه کنیم؟
برای اینکار کافی است تا یک متد ساده برای درج درس در لیست CourseList دانشجو را در کلاس Student تعریف کنیم:
public class Student
{
public int StudentId { get; set; }
public string StudentName { get; set; }
public string StudentFamily { get; set; }
public List<Course> CourseList = new List<Course>();
public void string Print()
{
Console.WriteLine($"Id: {StudentId}\tName: {StudentName}\tFamily : {StudentFamily}");
}
public void AddCourse(Course courseName)
{
CourseList.Add(courseName);
}
}
در نتیجه متد AddCourse برای درج دروس انتخاب واحد شده توسط دانشجو در کلاس Student تعریف شده و حال کافی است تا دروس تعریف شده از کلاس Course را با استفاده از متد AddCourse، توسط شناسه شئ تعریف شده از کلاس Student فراخوانی کرده و به CourseList اضافه کنیم:
class Program
{
public static void Main(string[] args)
{
Course course1 = new Course();
Student student1 = new Student();
student1.AddCourse(course1);
}
}
همانطور که در مثال فوق مشاهده میکنید، ابتدا یک شئ از کلاس Course را به نام course1 تعریف کردیم.
فرض کنید course1 به عنوان مثال، درس مبانی کامپیوتر است!
سپس یک شئ از کلاس Student به نام student1 تعریف کردیم.
فرض کنید student1، دانشجویی به نام علی مقدم جاه است!
حال با استفاده از دستور زیر:
student1.AddCourse(course1);
درس مبانی کامپیوتر را برای دانشجویی به نام علی مقدم جاه انتخاب واحد کردیم!
به همین سادگی شما میتوانید دروس دیگر را نیز به لیست انتخاب واحدهای این دانشجو اضافه کنید.
جهت شرکت در دورههای زبان برنامه نویسی سیشارپ، از کد تخفیف heplc30 استفاده کنید.