eitaa logo
پروژه ASP.Net Core MVC (وب و سی شارپ)
125 دنبال‌کننده
168 عکس
38 ویدیو
375 فایل
❁﷽❁ آموزش 📖 برنامه نویسی ASP.Net Core MVC (وب و سی شارپ) Admin: @alialirezapanahi برنامه نویسی برنامه نویسی سی شارپ eitaa.com/sisharpapp برنامه نویسی وب eitaa.com/aspdatnet ویراستی virasty.com/alialirezapanahi آپارات aparat.com/alialirezapanahi
مشاهده در ایتا
دانلود
6 کلمه کلیدی this در سی‌شارپ به شیء جاری اشاره دارد و معمولاً برای تمایز بین اعضای کلاس و پارامترهای متد یا سازنده استفاده می‌شود. فراخوانی سازنده دیگر از داخل یک سازنده می‌توانید از this برای فراخوانی یک سازنده دیگر از داخل یک سازنده استفاده کنید class Person { public string name; public string family; public string website; public Person(string name, string family, string website) { this.name = name; this.family = family; this.website = website; } } و در کلاس Program class Program { static void Main(string[] args) { Person p1 = new Person("ali", "panahi", "www.google.com"); Person p2 = new Person("reza", "mohammadi", "www.yahoo.com"); Console.WriteLine($"name: {p1.name} family: {p1.family} website: {p1.website}"); Console.WriteLine($"name: {p2.name} family: {p2.family} website: {p2.website}"); Console.ReadKey(); }
7 یک برنامه حلقه که از کاربر بپرسیم چند تا پرسنل داریم و هر پرسنل اسم و فامیل و وب سایت پرسیده شود class Person { public string name; public string family; public string website; public Person(string name, string family, string website) { this.name = name; this.family = family; this.website = website; } } و در کلاس Program static void Main(string[] args) { Console.WriteLine("Please Enter Personal Number :"); int number = Convert.ToInt32(Console.ReadLine()); Person[] people = new Person[number]; for (int i = 0; i < number; i++) { Console.WriteLine($"Please Enter Person[{(i + 1)}] Name :"); string name = Console.ReadLine(); Console.WriteLine($"Please Enter Person[{(i + 1)}] Family :"); string family = Console.ReadLine(); Console.WriteLine($"Please Enter Person[{(i + 1)}] Web Site :"); string website = Console.ReadLine(); Person p = new Person(name, family, website); people[i] = p; } Console.ForegroundColor = ConsoleColor.Green; foreach (Person person in people) { Console.WriteLine($"Name : {person.name} Family : {person.family} WebSite : {person.website}"); } Console.ResetColor(); Console.ReadKey(); }
8 در سی‌شارپ، سازنده‌های static و public هر کدام نقش‌ها و ویژگی‌های خاص خود را دارند. class Program { static void Main(string[] args) { ali a1 = new ali(); ali a2 = new ali(); ali a3 = new ali(); ali a4 = new ali(); Console.ReadKey(); } } class ali { public ali() { Console.WriteLine("public Constructors.... "); } static ali() { Console.WriteLine("static Constructors.... "); } }
9 در اینجا تفاوت‌ها و کاربردهای هر یک را بررسی می‌کنیم تعریف: سازنده‌های public برای مقداردهی اولیه اعضای نمونه (instance) کلاس استفاده می‌شوند و می‌توانند پارامتر بپذیرند. سازنده‌های public فراخوانی: این سازنده‌ها هنگام ایجاد یک شیء جدید از کلاس فراخوانی می‌شوند. سازنده‌های static تعریف: سازنده‌های static برای مقداردهی اولیه اعضای static کلاس استفاده می‌شوند و نمی‌توانند پارامتر بپذیرند. فراخوانی: این سازنده‌ها تنها یک بار و قبل از دسترسی به هر عضو static کلاس، به صورت خودکار توسط CLR (Common Language Runtime) فراخوانی می‌شوند. تفاوت‌های کلیدی 1- فراخوانی: سازنده‌های public هنگام ایجاد یک شیء جدید فراخوانی می‌شوند، در حالی که سازنده‌های static تنها یک بار و به صورت خودکار توسط CLR فراخوانی می‌شوند. 2- پارامترها: سازنده‌های public می‌توانند پارامتر بپذیرند، اما سازنده‌های static نمی‌توانند. 3- هدف: سازنده‌های public برای مقداردهی اولیه اعضای نمونه استفاده می‌شوند، در حالی که سازنده‌های static برای مقداردهی اولیه اعضایstatic کلاس استفاده می‌شوند.
10 ارث‌بری (Inheritance) یکی از اصول مهم برنامه‌نویسی شیءگرا (OOP) است که به شما اجازه می‌دهد تا یک کلاس جدید از یک کلاس موجود ایجاد کنید. در سی‌شارپ، این کار با استفاده از نماد : انجام می‌شود. کلاس جدید که به آن کلاس مشتق (Derived Class) گفته می‌شود، می‌تواند تمام ویژگی‌ها و متدهای کلاس پایه (Base Class) را به ارث ببرد.
11 یک مثال class parent { public static int Sum(int a, int b) { return a + b; } public static int minus(int a, int b) { return a - b; } } class child : parent { public static int multiple(int a, int b) { return a * b; } class Program { static void Main(string[] args) { Console.WriteLine(child.Sum(10, 8)); Console.WriteLine(child.minus(10, 8)); Console.WriteLine(child.multiple(10, 8)); Console.ReadKey(); } } }
12 کپسوله‌سازی (Encapsulation) در سی‌شارپ یکی از اصول مهم برنامه‌نویسی شیءگرا است که به معنای محصور کردن داده‌ها و متدها در یک کلاس و جلوگیری از دسترسی مستقیم به جزئیات پیاده‌سازی آن‌ها می‌باشد. این کار با استفاده از مشخصه‌های دسترسی (Access Modifiers) مانند private، public، protected و internal انجام می‌شود. مثال ساده از کپسوله‌سازی: using System; namespace EncapsulationExample { class Person { // متغیرهای خصوصی private string name; private int age; // متدهای عمومی برای دسترسی به متغیرهای خصوصی public void SetName(string newName) { name = newName; } public string GetName() { return name; } public void SetAge(int newAge) { if (newAge > 0) { age = newAge; } } public int GetAge() { return age; } } class Program { static void Main(string[] args) { Person person = new Person(); person.SetName("Ali"); person.SetAge(25); Console.WriteLine("Name: " + person.GetName()); Console.WriteLine("Age: " + person.GetAge()); } } } در این مثال، متغیرهای name و age به صورت خصوصی (private) تعریف شده‌اند و فقط از طریق متدهای عمومی (public) قابل دسترسی هستند. این روش به ما کمک می‌کند تا کنترل بیشتری بر روی داده‌ها داشته باشیم و از تغییرات ناخواسته جلوگیری کنیم.
13 کپسوله‌سازی (Encapsulation) در سی‌شارپ به معنای محصور کردن داده‌ها و متدها در یک کلاس و جلوگیری از دسترسی مستقیم به جزئیات پیاده‌سازی آن‌ها است. برای این کار از متدهای get و set استفاده می‌شود که به ما اجازه می‌دهند تا به صورت کنترل‌شده به متغیرهای خصوصی دسترسی داشته باشیم. مثال از کپسوله‌سازی با استفاده از get و set: using System; namespace EncapsulationExample { class Person { // متغیر خصوصی private string name; // متدهای get و set برای دسترسی به متغیر خصوصی public string Name { get { return name; } //زمان فراخوانی set { name = value; } // زمان مقدار دهی } } class Program { static void Main(string[] args) { Person person = new Person(); person.Name = "Ali"; // استفاده از set Console.WriteLine("Name: " + person.Name); // استفاده از get } } } در این مثال، متغیر name به صورت خصوصی (private) تعریف شده است و فقط از طریق متدهای get و set قابل دسترسی است. این روش به ما کمک می‌کند تا کنترل بیشتری بر روی داده‌ها داشته باشیم و از تغییرات ناخواسته جلوگیری کنیم.
14 یک مثال دیگر کپسوله‌سازی (Encapsulation) class Car { //public //private //protected //internal private int _speed; public int Speed { get { return _speed; } set { if (value > 120) { Console.WriteLine("Bichare mimirihaaaaa ...."); _speed = 0; } else { _speed = value; } } } private string _carName = "Pride"; public string CarName { get // get فقط خواندی هست و نمی توانید مقدار دهید { return _carName; } } } و در کلاس Program class Program { static void Main(string[] args) { Car pride = new Car(); pride.Speed = 120; //pride.CarName = "Peykan"; // get فقط خواندی هست و نمی توانید مقدار دهید Console.WriteLine($"Car Name Is : {pride.CarName}"); Console.WriteLine($"Speed Is {pride.Speed}"); Console.ReadKey(); }
15 در سی شارپ، Property یا ویژگی، عضوی از یک کلاس است که برای تنظیم و دریافت داده‌ها از یک فیلد داده (یعنی متغیر) استفاده می‌شود. Properties به ما این امکان را می‌دهند که به شیوه‌ای کنترل‌شده به فیلدهای کلاس دسترسی پیدا کنیم و از دسترسی نامناسب به آن‌ها جلوگیری کنیم. ساختار یک Property در سی شارپ شامل دو بخش اصلی است: get و set. بخش get برای بازیابی مقدار Property و بخش set برای تنظیم مقدار آن استفاده می‌شود.
16 در سی شارپ، GenericList یا به طور دقیق‌تر List<T>، یک مجموعه عمومی (generic) است که می‌تواند انواع مختلف داده‌ها را ذخیره کند. این نوع لیست در فضای نام System.Collections.Generic قرار دارد و به شما اجازه می‌دهد تا مجموعه‌ای از اشیاء را به صورت نوع مشخص ذخیره کنید. ویژگی‌های List<T>:- نوع عمومی: List<T> می‌تواند حاوی عناصری از نوع مشخص باشد و چک کردن نوع در زمان کامپایل را فراهم می‌کند. - دسترسی با ایندکس: می‌توانید به عناصر لیست با استفاده از ایندکس دسترسی داشته باشید، مانند myList[0]. - افزودن و حذف عناصر: می‌توانید از متدهای Add(), AddRange(), Insert(), Remove(), و RemoveAt() برای مدیریت عناصر لیست استفاده کنید. - پشتیبانی از LINQ: List<T> از پرس و جوهای LINQ پشتیبانی می‌کند که به شما اجازه می‌دهد تا به راحتی داده‌ها را جستجو و فیلتر کنید. مثال: // ایجاد یک لیست از اعداد صحیح List<int> primeNumbers = new List<int> { 2, 3, 5, 7, 11 }; // افزودن یک عنصر به لیست primeNumbers.Add(13); // دسترسی به یک عنصر با استفاده از ایندکس int firstPrime = primeNumbers[0]; // خروجی: 2 // حذف یک عنصر از لیست primeNumbers.Remove(5); //حذف یک ایندکس آرایه primeNumbers.RemoveAt(0); // استفاده از LINQ برای فیلتر کردن عناصر var evenNumbers = primeNumbers.Where(n => n % 2 == 0).ToList(); این مثال نشان می‌دهد که چگونه می‌توانید یک لیست ایجاد کنید، عناصر را به آن اضافه کنید، به عناصر دسترسی پیدا کنید، و از LINQ برای فیلتر کردن داده‌ها استفاده کنید.