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
مشاهده در ایتا
دانلود
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 برای فیلتر کردن داده‌ها استفاده کنید.
17 مثال دیگر در GenericList List<string> Names = new List<string>(); Names.Add("Iman"); Names.Add("TopLearn"); Names.Add("Barnamenevisan"); Names.Add("Ali"); Names.Add("themeShop"); foreach (string name in Names) { Console.WriteLine($"Name Is : {name}"); } Console.ReadKey();
18 در زبان برنامه‌نویسی سی شارپ، اینترفیس (Interface) یک قرارداد است که تعیین می‌کند یک کلاس باید چه ویژگی‌ها و روش‌هایی را پیاده‌سازی کند. اینترفیس‌ها شامل متدها، ویژگی‌ها و رویدادها هستند که فقط اعلان می‌شوند و پیاده‌سازی آن‌ها بر عهده کلاس‌های مشتق شده است. برای تعریف یک اینترفیس از کلمه کلیدی interface استفاده می‌شود. به عنوان مثال: public interface ITransactions { void ShowTransaction(); double GetAmount(); } و برای پیاده‌سازی اینترفیس در یک کلاس: public class Transaction : ITransactions { private string tCode; private string date; private double amount; public Transaction(string c, string d, double a) { tCode = c; date = d; amount = a; } public double GetAmount() { return amount; } public void ShowTransaction() { Console.WriteLine($"Transaction: {tCode}"); Console.WriteLine($"Date: {date}"); Console.WriteLine($"Amount: {GetAmount()}"); } } این مثال نشان می‌دهد که چگونه یک کلاس می‌تواند از یک اینترفیس ارث‌بری کند و متدهای آن را پیاده‌سازی کند.
19 تفاوت‌های اصلی بین اینترفیس و کلاس در سی شارپ به شرح زیر است: 1- تعریف و پیاده‌سازی: - اینترفیس: فقط شامل اعلان متدها، ویژگی‌ها و رویدادها است و پیاده‌سازی آن‌ها بر عهده کلاس‌هایی است که از اینترفیس ارث‌بری می‌کنند. - کلاس: شامل اعلان و پیاده‌سازی متدها، ویژگی‌ها و رویدادها است. 2- ارث‌بری: - اینترفیس: یک کلاس می‌تواند از چندین اینترفیس ارث‌بری کند که به آن چندگانه‌ارث‌بری می‌گویند. - کلاس: یک کلاس فقط می‌تواند از یک کلاس دیگر ارث‌بری کند (ارث‌بری تک‌گانه). 3- ایجاد شیء: - اینترفیس: نمی‌توان از اینترفیس‌ها شیء ایجاد کرد. - کلاس: می‌توان از کلاس‌ها شیء ایجاد کرد. 4- دسترسی به اعضا: - اینترفیس: اعضای اینترفیس به صورت پیش‌فرض عمومی (public) هستند و نمی‌توانند شامل فیلدهای خصوصی یا محافظت‌شده باشند. - کلاس: اعضای کلاس می‌توانند دارای سطوح دسترسی مختلفی مانند خصوصی (private)، محافظت‌شده (protected) و عمومی (public) باشند. به عنوان مثال، در کد زیر یک اینترفیس و یک کلاس را مشاهده می‌کنید: public interface IExample { void MethodA(); } public class ExampleClass : IExample { public void MethodA() { Console.WriteLine("MethodA implementation"); } } در این مثال، ExampleClass از اینترفیس IExample ارث‌بری کرده و متد MethodA را پیاده‌سازی کرده است.
20 یک مثال اینترفیس namespace ConsoleApp5 { internal interface IMyInterface { string HelloUser(string name); } } کلاس Person namespace ConsoleApp5 { class Person:IMyInterface { public string HelloUser(string name) { return "Hello " + name; } } } و کلاس Program namespace ConsoleApp5 { class Program { static void Main(string[] args) { Person hi = new Person(); Console.WriteLine(hi.HelloUser("alireza panahi")); Console.ReadKey(); } } }
21 در اینجا می توانیم اینترفیس interface را انتخاب کرد