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
مشاهده در ایتا
دانلود
21 در اینجا یک مثال دیگر از استفاده از توابع بازگشتی برای حل مسئله فیبوناچی آورده شده است. دنباله فیبوناچی به این صورت است که هر عدد برابر با مجموع دو عدد قبلی خود است. به عنوان مثال، دنباله فیبوناچی به این صورت شروع می‌شود: 0, 1, 1, 2, 3, 5, 8, ... در زیر یک مثال از تابع بازگشتی برای محاسبه عدد فیبوناچی آورده شده است: using System; namespace FibonacciExample { class Program { static void Main(string[] args) { int n = 10; Console.WriteLine($"Fibonacci of {n} is {Fibonacci(n)}"); Console.ReadKey(); } static int Fibonacci(int n) { if (n <= 1) return n; else return Fibonacci(n - 1) + Fibonacci(n - 2); } } } در این مثال، تابع Fibonacci به صورت بازگشتی دو مقدار قبلی دنباله را محاسبه می‌کند و آن‌ها را با هم جمع می‌کند تا مقدار فعلی را به دست آورد. اگر n کمتر یا مساوی 1 باشد، تابع مقدار n را برمی‌گرداند که شرط پایان (base case) است.
22 کلمه کلیدی ref در سی‌شارپ برای ارسال پارامترها به صورت ارجاعی به متدها استفاده می‌شود. این به این معناست که هر تغییری که در پارامتر داخل متد انجام شود، در متغیر اصلی خارج از متد نیز اعمال می‌شود. این قابلیت زمانی مفید است که بخواهید متغیری را درون یک متد تغییر دهید و این تغییرات در متغیر اصلی نیز منعکس شود. مثال زیر را در نظر بگیرید: using System; namespace RefKeywordExample { class Program { static void Main(string[] args) { int number = 10; Console.WriteLine("Before: " + number); // خروجی: Before: 10 ModifyNumber(ref number); Console.WriteLine("After: " + number); // خروجی: After: 20 Console.ReadKey(); } static void ModifyNumber(ref int num) { num = 20; } } } در این مثال، متغیر number با استفاده از کلمه کلیدی ref به متد ModifyNumber ارسال می‌شود. هر تغییری که درون این متد روی num انجام شود، در متغیر اصلی number نیز اعمال می‌شود.
23 کلمه کلیدی out در سی‌شارپ برای ارسال پارامترها به صورت ارجاعی به متدها استفاده می‌شود، با این تفاوت که پارامترهای out باید درون متد مقداردهی شوند. این قابلیت زمانی مفید است که بخواهید یک متغیر بدون مقدار اولیه را به متد ارسال کنید و درون متد به آن مقدار بدهید. مثال زیر را در نظر بگیرید: using System; namespace OutKeywordExample { class Program { static void Main(string[] args) { int result; CalculateArea(5, 10, out result); Console.WriteLine("Area: " + result); // خروجی: Area: 50 Console.ReadKey(); } static void CalculateArea(int length, int width, out int area) { area = length * width; } } } در این مثال، متغیر result بدون مقدار اولیه به متد CalculateArea ارسال می‌شود. درون این متد، مقدار area محاسبه و به result اختصاص داده می‌شود.
24 در سی‌شارپ، enum یا شمارش (Enumeration) راهی برای تعریف مجموعه‌ای از مقادیر ثابت است که می‌توانند به یک متغیر اختصاص داده شوند. این مقادیر معمولاً نام‌هایی هستند که به صورت عددی ذخیره می‌شوند. برای تعریف یک enum، از کلمه کلیدی enum استفاده می‌کنیم. به عنوان مثال: enum Direction { North, East, South, West } در این مثال، Direction یک enum است که چهار مقدار North، East، South و West را تعریف می‌کند. به صورت پیش‌فرض، مقادیر این enum از 0 شروع می‌شوند و به ترتیب افزایش می‌یابند، یعنی North برابر 0، East برابر 1، South برابر 2 و West برابر 3 است. همچنین می‌توانید مقادیر پیش‌فرض را تغییر دهید: enum Direction { North = 3, East = 5, South = 7, West = 9 } در این حالت، مقادیر به ترتیب 3، 5، 7 و 9 خواهند بود.
25 در اینجا یک مثال ساده از استفاده enum در یک برنامه سی‌شارپ آورده شده است. این برنامه جهت حرکت را از کاربر می‌گیرد و بر اساس مقدار enum، پیامی را نمایش می‌دهد: using System; enum Direction { North, East, South, West } class Program { static void Main() { Console.WriteLine("Enter a direction (North, East, South, West):"); string input = Console.ReadLine(); Direction direction; if (Enum.TryParse(input, true, out direction)) { switch (direction) { case Direction.North: Console.WriteLine("You are heading North."); break; case Direction.East: Console.WriteLine("You are heading East."); break; case Direction.South: Console.WriteLine("You are heading South."); break; case Direction.West: Console.WriteLine("You are heading West."); break; default: Console.WriteLine("Unknown direction."); break; } } else { Console.WriteLine("Invalid direction entered."); Console.ReadKey(); } } } در این مثال: - یک enum به نام Direction تعریف شده است که چهار مقدار North، East، South و West دارد. - برنامه از کاربر یک جهت می‌گیرد و آن را به یک مقدار enum تبدیل می‌کند. - بر اساس مقدار enum، یک پیام مناسب نمایش داده می‌شود. این برنامه به شما کمک می‌کند تا بفهمید چگونه می‌توانید از enum برای مدیریت مجموعه‌ای از مقادیر ثابت در برنامه‌های خود استفاده کنید.
26 در سی‌شارپ، struct (ساختار) یک نوع داده‌ی مقداری است که می‌تواند داده‌ها و عملکردهای مرتبط را در خود جای دهد. برای تعریف یک ساختار از کلمه کلیدی struct استفاده می‌شود. به عنوان مثال: public struct Employee { public int Id; public string Name; public Employee(int id, string name) { Id = id; Name = name; } public void DisplayInfo() { Console.WriteLine($"ID: {Id}, Name: {Name}"); } } در این مثال، یک ساختار به نام Employee تعریف شده است که شامل دو فیلد Id و Name و یک سازنده برای مقداردهی اولیه این فیلدها است. همچنین یک متد DisplayInfo برای نمایش اطلاعات کارمند وجود دارد. ساختارها در سی‌شارپ معمولاً برای طراحی نوع‌های داده‌ای کوچک و متمرکز بر داده استفاده می‌شوند که رفتار کمی دارند یا اصلاً ندارند.
27 بیایید یک مثال کامل از استفاده از struct در سی‌شارپ را بررسی کنیم. فرض کنید می‌خواهیم اطلاعات مربوط به یک کتابخانه را مدیریت کنیم. هر کتاب شامل عنوان، نویسنده، و سال انتشار است. همچنین می‌خواهیم یک متد برای نمایش اطلاعات کتاب داشته باشیم. using System; public struct Book { public string Title; public string Author; public int Year; // سازنده برای مقداردهی اولیه فیلدها public Book(string title, string author, int year) { Title = title; Author = author; Year = year; } // متد برای نمایش اطلاعات کتاب public void DisplayInfo() { Console.WriteLine($"Title: {Title}, Author: {Author}, Year: {Year}"); } } class Program { static void Main() { // ایجاد نمونه‌ای از ساختار Book Book book1 = new Book("1984", "George Orwell", 1949); Book book2 = new Book("To Kill a Mockingbird", "Harper Lee", 1960); // نمایش اطلاعات کتاب‌ها book1.DisplayInfo(); book2.DisplayInfo(); Console.ReadKey(); } } در این مثال: - تعریف ساختار Book: ساختار Book شامل سه فیلد Title، Author و Year است. - سازنده: سازنده‌ای برای مقداردهی اولیه فیلدها تعریف شده است. - متد DisplayInfo: این متد اطلاعات کتاب را در کنسول نمایش می‌دهد. - کلاس Program: در این کلاس، دو نمونه از ساختار Book ایجاد شده و اطلاعات آن‌ها نمایش داده می‌شود. این مثال نشان می‌دهد که چگونه می‌توان از ساختارها برای مدیریت داده‌های مرتبط استفاده کرد.
28 یک مثال ساده using System; namespace CA_test63 { class Program { struct Student { public int Code; public string Name; public string LastName; } static void Main(string[] args) { int n; Student st; //st.Name = "rahim"; //st.LastName = "lotfi"; //st.Code = 50; st.Code = Convert.ToInt32(Console.ReadLine()); st.Name = Console.ReadLine(); st.LastName = Console.ReadLine(); Console.Write(st.Code+" : "+st.Name+"\t"+st.LastName); Console.ReadKey(); } } }
Program.cs
حجم: 4.9K
29 1- برای اضافه کردن id و نام و فامیل 2- خروج 3- چاپ 4- جستجو 5- ویرایش 6- حذف 7- بازیابی
30 از توابع بازگشتی که داخل خودش ، خودش را فراخوانی می کند که می توانیم به جای حلقه استفاده کرد static void Main() { Show1to10(1); // از یک شروع شود Console.WriteLine("------------------------------"); show5to50(5); // از پنج شروع می شود Console.ReadKey(); } public static void Show1to10(int n) { if (n <= 10) //عدد تا 10 پایان می یابد { Show1to10(n + 1); Console.WriteLine(n); // اگر کنسول بعد از فرا خوانی باشد اعداد از آخر به بعد کم می شود } } public static void show5to50(int n) { if (n <= 50) // عدد تا 50 پایان می یابد { Console.WriteLine(n); // اگر کنسول قبل از فرا خوانی باشد عدد از پنج شروع میشد به بالا show5to50(n + 5); } }
1 کلاس‌ها در سی‌شارپ (C#) یکی از اصول اساسی برنامه‌نویسی شی‌گرا هستند. یک کلاس به عنوان یک الگو یا قالب برای ایجاد اشیاء با ویژگی‌ها و رفتارهای خاص عمل می‌کند. در اینجا یک مثال ساده از نحوه تعریف یک کلاس در سی‌شارپ آورده شده است: class MyClass { // سطح دسترسی // private خصوصی // public عمومی // protected فقط دسترسی فضای نام public static int Sum(int a, int b) { return a + b; } private static string Fullname(string name, string family) { return name + " " + family; } و در کلاس Program static void Main(string[] args) { int sum = MyClass.Sum(4, 5); Console.WriteLine(sum); Console.ReadKey(); }
2 سطوح دسترسی (Access Modifiers) در سی‌شارپ مشخص می‌کنند که اعضای یک کلاس (مانند متغیرها و متدها) از کجا و چگونه قابل دسترسی هستند. در سی‌شارپ، پنج سطح دسترسی اصلی وجود دارد: 1- public: اعضایی که با این سطح دسترسی تعریف می‌شوند، از همه جا قابل دسترسی هستند. public class MyClass { public int MyProperty { } } 2- private: اعضایی که با این سطح دسترسی تعریف می‌شوند، فقط در داخل همان کلاس قابل دسترسی هستند. public class MyClass { private int myField; } 3- protected: اعضایی که با این سطح دسترسی تعریف می‌شوند، فقط در داخل همان کلاس و کلاس‌های مشتق شده از آن قابل دسترسی هستند. public class MyClass { protected int myField; } 4- internal: اعضایی که با این سطح دسترسی تعریف می‌شوند، فقط در داخل همان اسمبلی (پروژه) قابل دسترسی هستند. internal class MyClass { internal int MyProperty { } } 5- protected internal: اعضایی که با این سطح دسترسی تعریف می‌شوند، در داخل همان اسمبلی و همچنین در کلاس‌های مشتق شده از آن قابل دسترسی هستند. public class MyClass { protected internal int MyProperty { } } این سطوح دسترسی به شما کمک می‌کنند تا کنترل بیشتری بر روی نحوه دسترسی به اعضای کلاس‌ها و امنیت داده‌ها داشته باشید. آیا نیاز به توضیحات بیشتری در مورد هر یک از این سطوح دسترسی دارید؟ یا سوال دیگری در مورد سی‌شارپ دارید؟ خوشحال می‌شوم کمک کنم!