🔵 دوست داری برنامه نویس حرفه ای بشی یا مهارت های کامپیوتری خودت رو افزایش بدی؟ با عضویت در لیست تلگرامی زیر در بی نظیر ترین کانال های برنامه نویسی ما عضو شوید:
🟢 پایتون، هوش مصنوعی، یادگیری ماشین، سی ++، سی شارپ، دات نت، نود جی اس، جاوا اسکریپت، شبکه، علم داده، پایگاه داده، sql، nosql ، مهارت های ICDL، سیستم عامل، لینوکس، فتوشاپ، گرافیک، اندروید، جاوا، ساخت اپلیکیشن موبایل، ری اکت، جی کوئری، php و laravel، دروس رشته کامپیوتر، کنکور کامپیوتر و ...
عضو لیست جامع شوید:
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
🟢 پایتون، هوش مصنوعی، یادگیری ماشین، سی ++، سی شارپ، دات نت، نود جی اس، جاوا اسکریپت، شبکه، علم داده، پایگاه داده، sql، nosql ، مهارت های ICDL، سیستم عامل، لینوکس، فتوشاپ، گرافیک، اندروید، جاوا، ساخت اپلیکیشن موبایل، ری اکت، جی کوئری، php و laravel، دروس رشته کامپیوتر، کنکور کامپیوتر و ...
عضو لیست جامع شوید:
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
Telegram
برنامه نویسی
You’ve been invited to add the folder “برنامه نویسی”, which includes 55 chats.
متدهای struct در C# بهطور پیشفرض کپی میگیرند. ⚙️
اما با `in parameter` در متد struct، از کپی کردن مقدار جلوگیری میشود و performance بهبود مییابد. 🚀
`in` تضمین میکند مقدار struct در متد تغییر نکند. 🛡️
https://t.me/csharp7
اما با `in parameter` در متد struct، از کپی کردن مقدار جلوگیری میشود و performance بهبود مییابد. 🚀
`in` تضمین میکند مقدار struct در متد تغییر نکند. 🛡️
https://t.me/csharp7
structها در C# بهطور پیشفرض Equality رو بر اساس "مقایسهی سطحی" (shallow comparison) انجام میدن. یعنی تکتک فیلدهاشون با هم برابر باشن.
اما برای مقایسهی عمیقتر (deep comparison) و کنترل بیشتر، اینترفیس `IEquatable<T>` رو پیادهسازی کنید.
```csharp
struct MyStruct : IEquatable<MyStruct>
{
public int Value { get; set; }
public bool Equals(MyStruct other)
{
return Value == other.Value;
}
}
```
با این کار، منطق دلخواه خودتون رو برای مقایسه تعریف میکنید. ⚙️🧰
https://t.me/csharp7
اما برای مقایسهی عمیقتر (deep comparison) و کنترل بیشتر، اینترفیس `IEquatable<T>` رو پیادهسازی کنید.
```csharp
struct MyStruct : IEquatable<MyStruct>
{
public int Value { get; set; }
public bool Equals(MyStruct other)
{
return Value == other.Value;
}
}
```
با این کار، منطق دلخواه خودتون رو برای مقایسه تعریف میکنید. ⚙️🧰
https://t.me/csharp7
💠 عضو جامع ترین کانال های توسعه فردی، روانشناسی و موفقیت شوید:
➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0
➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0
شامل موضوعات آموزشی زیر:
توسعه و رشد فردی
افزایش ثروت
هدف گذاری و مدیریت زمان
مهارت های اجتماعی، ارتباطی و فن بیان
روانشناسی و خودیاری
موفقیت
عادات موثر
سلامت و تغذیه سالم
موفقیت شغلی
عبارات تاکیدی
مدیریت اضطراب و خشم
روان درمانی CBT و ACT
شخصیت شناسی و تحلیل روانشناسی
انگیزشی
کودک درون
تکنیک های NLP
یوگا
افزایش حافظه
مدیتیشن
موفقیت تحصیلی
مطالعه موثر
افزایش اعتماد به نفس
افزایش تمرکز
تفکر مثبت
افزایش خلاقیت
نقل قول های انگیزشی
با کلیک بر روی لینک زیر عضو تمامی این کانال ها شوید:
➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0
➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0
➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0
➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0
شامل موضوعات آموزشی زیر:
توسعه و رشد فردی
افزایش ثروت
هدف گذاری و مدیریت زمان
مهارت های اجتماعی، ارتباطی و فن بیان
روانشناسی و خودیاری
موفقیت
عادات موثر
سلامت و تغذیه سالم
موفقیت شغلی
عبارات تاکیدی
مدیریت اضطراب و خشم
روان درمانی CBT و ACT
شخصیت شناسی و تحلیل روانشناسی
انگیزشی
کودک درون
تکنیک های NLP
یوگا
افزایش حافظه
مدیتیشن
موفقیت تحصیلی
مطالعه موثر
افزایش اعتماد به نفس
افزایش تمرکز
تفکر مثبت
افزایش خلاقیت
نقل قول های انگیزشی
با کلیک بر روی لینک زیر عضو تمامی این کانال ها شوید:
➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0
➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0
Telegram
موفقیت
You’ve been invited to add the folder “موفقیت”, which includes 26 chats.
🔵 کوییز #سی_شارپ
🟣 موضوع : معرفی و کاربرد Entity Framework
🟢 سوال :
کدام یک از موارد زیر یک روش برای بهروزرسانی پایگاه داده در Entity Framework است؟
گزینه ۱:
استفاده از دستورات SQL
گزینه ۲:
استفاده از Migrations
گزینه ۳:
استفاده از متدهای ADO.NET
گزینه ۴:
استفاده از توابع بازگشتی
🔵 گزینه صحیح:2
🟢 توضیح :
Migrations برای بهروزرسانی پایگاه داده در Entity Framework استفاده میشود.
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
🟣 موضوع : معرفی و کاربرد Entity Framework
🟢 سوال :
کدام یک از موارد زیر یک روش برای بهروزرسانی پایگاه داده در Entity Framework است؟
گزینه ۱:
استفاده از دستورات SQL
گزینه ۲:
استفاده از Migrations
گزینه ۳:
استفاده از متدهای ADO.NET
گزینه ۴:
استفاده از توابع بازگشتی
🔵 گزینه صحیح:
🟢 توضیح :
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
Telegram
آموزش کامپیوتر و برنامه نویسی tu24
* برنامه نویسی
* علوم کامپیوتر
* ریاضیات مورد نیاز علوم کامپیوتر
* هوش مصنوعی
* علوم داده
* داده کاوی
* بیگ دیتا
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs
* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
* علوم کامپیوتر
* ریاضیات مورد نیاز علوم کامپیوتر
* هوش مصنوعی
* علوم داده
* داده کاوی
* بیگ دیتا
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs
* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
🔵 با عضویت در لیست تلگرامی جامع آموزش زبان زیر عضو بی نظیرترین و کامل ترین مجموعه آموزش زبان انگلیسی تلگرامی شوید:
🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
Telegram
زبان
You’ve been invited to add the folder “زبان”, which includes 50 chats.
C# از نسخه 9 به بعد، قابلیتی به نام Top-Level Statements داره.
دیگه لازم نیست یه برنامه کنسولی ساده رو حتماً داخل namespace و class تعریف کنید.
```csharp
// کد قبلی
namespace MyApp;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
// کد جدید
Console.WriteLine("Hello World!");
```
حتی میتونید از using statement هم استفاده کنید:
```csharp
using System;
Console.WriteLine("Hello World!");
```
به همین سادگی! ✨😎
https://t.me/csharp7
دیگه لازم نیست یه برنامه کنسولی ساده رو حتماً داخل namespace و class تعریف کنید.
```csharp
// کد قبلی
namespace MyApp;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
// کد جدید
Console.WriteLine("Hello World!");
```
حتی میتونید از using statement هم استفاده کنید:
```csharp
using System;
Console.WriteLine("Hello World!");
```
به همین سادگی! ✨😎
https://t.me/csharp7
🔵 با عضویت در لیست تلگرامی جامع آموزش زبان زیر عضو بی نظیرترین و کامل ترین مجموعه آموزش زبان انگلیسی تلگرامی شوید:
🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
Telegram
زبان
You’ve been invited to add the folder “زبان”, which includes 50 chats.
`ref struct`ها در C# از تخصیص heap جلوگیری میکنند. 🗑️
اما در iteratorها (مانند `yield return`) نمیتوانید از `ref struct` استفاده کنید. 🚫 چون iteratorها state machine هستند و ممکن است بین `yield`ها، `ref struct` از scope خارج شود.
بنابراین، کامپایلر اجازه نمیدهد `ref struct` را در iterator به کار ببرید. ⚙️
https://t.me/csharp7
اما در iteratorها (مانند `yield return`) نمیتوانید از `ref struct` استفاده کنید. 🚫 چون iteratorها state machine هستند و ممکن است بین `yield`ها، `ref struct` از scope خارج شود.
بنابراین، کامپایلر اجازه نمیدهد `ref struct` را در iterator به کار ببرید. ⚙️
https://t.me/csharp7
متد `Main` در C# میتونه آرگومان بگیره. ⚙️
این آرگومان به صورت یک آرایه از رشتهها (`string[] args`) به متد پاس داده میشه.
این آرایه شامل آرگومانهایی هست که هنگام اجرای برنامه از طریق خط فرمان وارد شدن. میتونید از این آرگومانها برای پیکربندی برنامه یا تعیین رفتارهای مختلف استفاده کنید. 💻
به این الگو، Args pattern گفته میشه.
https://t.me/csharp7
این آرگومان به صورت یک آرایه از رشتهها (`string[] args`) به متد پاس داده میشه.
این آرایه شامل آرگومانهایی هست که هنگام اجرای برنامه از طریق خط فرمان وارد شدن. میتونید از این آرگومانها برای پیکربندی برنامه یا تعیین رفتارهای مختلف استفاده کنید. 💻
به این الگو، Args pattern گفته میشه.
https://t.me/csharp7
در C#، قرارداد نامگذاری PascalCase برای نام کلاسها، متدها و پراپرتیها رایج است. این به این معناست که حرف اول هر کلمه در نام، با حرف بزرگ شروع میشود.
مثال برای نام کلاس:
مثال برای نام متد:
مثال برای نام پراپرتی:
این قرارداد نامگذاری به خوانایی بهتر کد و درک سریعتر ساختار آن کمک میکند. 📝✨
https://t.me/csharp7
مثال برای نام کلاس:
public class CustomerAccount
{
// ...
}
مثال برای نام متد:
public void CalculateTotalPrice()
{
// ...
}
مثال برای نام پراپرتی:
public string CustomerName { get; set; }
این قرارداد نامگذاری به خوانایی بهتر کد و درک سریعتر ساختار آن کمک میکند. 📝✨
https://t.me/csharp7
Telegram
آموزش C# و .Net
تعرفه تبلیغات :
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
🔵 دوست داری برنامه نویس حرفه ای بشی یا مهارت های کامپیوتری خودت رو افزایش بدی؟ با عضویت در لیست تلگرامی زیر در بی نظیر ترین کانال های برنامه نویسی ما عضو شوید:
🟢 پایتون، هوش مصنوعی، یادگیری ماشین، سی ++، سی شارپ، دات نت، نود جی اس، جاوا اسکریپت، شبکه، علم داده، پایگاه داده، sql، nosql ، مهارت های ICDL، سیستم عامل، لینوکس، فتوشاپ، گرافیک، اندروید، جاوا، ساخت اپلیکیشن موبایل، ری اکت، جی کوئری، php و laravel، دروس رشته کامپیوتر، کنکور کامپیوتر و ...
عضو لیست جامع شوید:
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
🟢 پایتون، هوش مصنوعی، یادگیری ماشین، سی ++، سی شارپ، دات نت، نود جی اس، جاوا اسکریپت، شبکه، علم داده، پایگاه داده، sql، nosql ، مهارت های ICDL، سیستم عامل، لینوکس، فتوشاپ، گرافیک، اندروید، جاوا، ساخت اپلیکیشن موبایل، ری اکت، جی کوئری، php و laravel، دروس رشته کامپیوتر، کنکور کامپیوتر و ...
عضو لیست جامع شوید:
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
Telegram
برنامه نویسی
You’ve been invited to add the folder “برنامه نویسی”, which includes 55 chats.
برای اجرای یک حلقه
در این مثال:
-
-
-
-
این حلقه 10 بار اجرا شده و اعداد 1 تا 10 را یکی یکی در کنسول چاپ خواهد کرد. 🔢💻
https://t.me/csharp7
for ساده در C# که اعداد از 1 تا 10 را نمایش میدهد، میتوانید از کد زیر استفاده کنید:for (int i = 1; i <= 10; i++)
{
Console.WriteLine(i);
}
در این مثال:
-
int i = 1; : متغیر شمارنده i را با مقدار اولیه 1 تعریف و مقداردهی میکند.-
i <= 10; : شرط ادامه حلقه است. حلقه تا زمانی که i کوچکتر یا مساوی 10 باشد، ادامه پیدا میکند.-
i++ : پس از هر بار اجرای بدنه حلقه، مقدار i را یکی افزایش میدهد.-
Console.WriteLine(i); : مقدار فعلی i را در خروجی نمایش میدهد.این حلقه 10 بار اجرا شده و اعداد 1 تا 10 را یکی یکی در کنسول چاپ خواهد کرد. 🔢💻
https://t.me/csharp7
Telegram
آموزش C# و .Net
تعرفه تبلیغات :
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
🔵 با عضویت در لیست تلگرامی جامع آموزش زبان زیر عضو بی نظیرترین و کامل ترین مجموعه آموزش زبان انگلیسی تلگرامی شوید:
🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
Telegram
زبان
You’ve been invited to add the folder “زبان”, which includes 50 chats.
در توسعه اپلیکیشنهای دسکتاپ با WPF، الگوی MVVM (Model-View-ViewModel) به سازماندهی کد و افزایش قابلیت تستپذیری کمک شایانی میکند. بخش View در این الگو، مسئول نمایش رابط کاربری و تعامل با کاربر است و معمولاً با استفاده از زبان XAML پیادهسازی میشود.
XAML (eXtensible Application Markup Language) یک زبان مبتنی بر XML است که برای تعریف رابط کاربری در WPF به کار میرود. با استفاده از XAML، میتوانید عناصر بصری مانند دکمهها، جعبههای متن، پنجرهها و طرحبندیها را به صورت деклараانه تعریف کنید. این رویکرد، جداسازی منطق برنامه (ViewModel) از نمایش بصری (View) را تسهیل میکند.
برای پیادهسازی View در MVVM با WPF، معمولاً از موارد زیر استفاده میشود:
کنترلهای WPF: مانند `Window`, `UserControl`, `Button`, `TextBlock`, `TextBox` و غیره.
Data Binding: مکانیسم قدرتمندی که امکان اتصال دادهها در ViewModel به عناصر UI در View را فراهم میکند. این اتصال میتواند یکطرفه (از ViewModel به View یا بالعکس) یا دوطرفه باشد.
Command Binding: برای اتصال رویدادهای UI (مانند کلیک دکمه) به دستورات (Commands) تعریف شده در ViewModel.
Templates و Styles: برای سفارشیسازی ظاهر و رفتار کنترلها و ایجاد رابطهای کاربری جذاب و یکپارچه.
به عنوان مثال، یک View ساده در XAML میتواند به این شکل باشد:
در این مثال،
https://t.me/csharp7
XAML (eXtensible Application Markup Language) یک زبان مبتنی بر XML است که برای تعریف رابط کاربری در WPF به کار میرود. با استفاده از XAML، میتوانید عناصر بصری مانند دکمهها، جعبههای متن، پنجرهها و طرحبندیها را به صورت деклараانه تعریف کنید. این رویکرد، جداسازی منطق برنامه (ViewModel) از نمایش بصری (View) را تسهیل میکند.
برای پیادهسازی View در MVVM با WPF، معمولاً از موارد زیر استفاده میشود:
کنترلهای WPF: مانند `Window`, `UserControl`, `Button`, `TextBlock`, `TextBox` و غیره.
Data Binding: مکانیسم قدرتمندی که امکان اتصال دادهها در ViewModel به عناصر UI در View را فراهم میکند. این اتصال میتواند یکطرفه (از ViewModel به View یا بالعکس) یا دوطرفه باشد.
Command Binding: برای اتصال رویدادهای UI (مانند کلیک دکمه) به دستورات (Commands) تعریف شده در ViewModel.
Templates و Styles: برای سفارشیسازی ظاهر و رفتار کنترلها و ایجاد رابطهای کاربری جذاب و یکپارچه.
به عنوان مثال، یک View ساده در XAML میتواند به این شکل باشد:
<Window x:Class="MyWpfApp.Views.MyView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:MyWpfApp.Views"
mc:Ignorable="d"
Title="My Application" Height="450" Width="800">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text="{Binding GreetingMessage}" FontSize="24" Margin="10"/>
<Button Content="Click Me" Command="{Binding GreetCommand}" Margin="10"/>
</StackPanel>
</Window>
در این مثال،
TextBlock پیام را از GreetingMessage در ViewModel دریافت میکند و Button به GreetCommand در ViewModel متصل است. این جداسازی باعث میشود که تغییرات در ظاهر UI (View) کمتر بر منطق برنامه (ViewModel) تأثیر بگذارد و بالعکس. 🖼️✨https://t.me/csharp7
Telegram
آموزش C# و .Net
تعرفه تبلیغات :
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
ویژگی جالب #C 11: اینترفیسهای Generic Math! ➕➗
اینترفیسهایی مثل `INumberBase<T>`, `IAdditionOperators<T, T, T>` و دهها مورد دیگه، امکان تعریف عملیات ریاضی Generic رو فراهم میکنند.
با این قابلیت، میشه توابع و کلاسهایی نوشت که با انواع عددی مختلف (مثل `int`, `float`, `decimal`) کار میکنند، بدون نیاز به Overloadهای متعدد! 🤓
https://t.me/csharp7
اینترفیسهایی مثل `INumberBase<T>`, `IAdditionOperators<T, T, T>` و دهها مورد دیگه، امکان تعریف عملیات ریاضی Generic رو فراهم میکنند.
با این قابلیت، میشه توابع و کلاسهایی نوشت که با انواع عددی مختلف (مثل `int`, `float`, `decimal`) کار میکنند، بدون نیاز به Overloadهای متعدد! 🤓
https://t.me/csharp7
🔵 دوست داری برنامه نویس حرفه ای بشی یا مهارت های کامپیوتری خودت رو افزایش بدی؟ با عضویت در لیست تلگرامی زیر در بی نظیر ترین کانال های برنامه نویسی ما عضو شوید:
🟢 پایتون، هوش مصنوعی، یادگیری ماشین، سی ++، سی شارپ، دات نت، نود جی اس، جاوا اسکریپت، شبکه، علم داده، پایگاه داده، sql، nosql ، مهارت های ICDL، سیستم عامل، لینوکس، فتوشاپ، گرافیک، اندروید، جاوا، ساخت اپلیکیشن موبایل، ری اکت، جی کوئری، php و laravel، دروس رشته کامپیوتر، کنکور کامپیوتر و ...
عضو لیست جامع شوید:
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
🟢 پایتون، هوش مصنوعی، یادگیری ماشین، سی ++، سی شارپ، دات نت، نود جی اس، جاوا اسکریپت، شبکه، علم داده، پایگاه داده، sql، nosql ، مهارت های ICDL، سیستم عامل، لینوکس، فتوشاپ، گرافیک، اندروید، جاوا، ساخت اپلیکیشن موبایل، ری اکت، جی کوئری، php و laravel، دروس رشته کامپیوتر، کنکور کامپیوتر و ...
عضو لیست جامع شوید:
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
Telegram
برنامه نویسی
You’ve been invited to add the folder “برنامه نویسی”, which includes 55 chats.
📚 نکته #SQLite
🟣 موضوع : بررسی و مقایسه انواع ذخیرهسازی دادهها در SQLite
📖 سرفصل : صفحات (Pages) و انواع آنها
✨ نکته 1:
صفحات (Pages) کوچکترین واحد ذخیرهسازی و ورودی/خروجی (I/O) در فایل پایگاه داده SQLite محسوب میشوند و اندازهای ثابت دارند.
✨ نکته 2:
اندازه یک صفحه از ۵۱۲ بایت تا ۶۵۵۳۶ بایت متغیر است و در زمان ایجاد پایگاه داده تعیین شده و در هدر (Header) فایل ثبت میشود.
✨ نکته 3:
هر صفحه با یک شماره صفحه (Page Number) منحصربهفرد آدرسدهی میشود که صفحه شماره ۱ همواره شامل هدر پایگاه داده و ریشه B-tree طرحواره (Schema) است.
✨ نکته 4:
صفحات از نظر نوع به طور عمده شامل صفحات B-tree برای دادهها و اندیسها، و صفحات سیستمی مانند Freelist Pages هستند.
✨ نکته 5:
صفحات B-tree داخلی (Interior Pages) حاوی کلیدها و اشارهگرهایی به صفحات فرزند در سطوح پایینتر درخت هستند و هیچ داده کاربری را مستقیماً ذخیره نمیکنند.
✨ نکته 6:
صفحات B-tree برگ (Leaf Pages) پایینترین سطح درخت B-tree را تشکیل میدهند و وظیفه نگهداری دادههای واقعی سطرها در جدول یا مقادیر اندیس را بر عهده دارند.
✨ نکته 7:
صفحات Freelist برای ردیابی صفحاتی به کار میروند که حاوی دادههای معتبری نیستند (مانند صفحاتی که تمامی سطرهای آنها حذف شدهاند) و آماده استفاده مجدد هستند.
✨ نکته 8:
هر صفحه دارای یک هدر صفحه (Page Header) در ابتدای خود است که شامل اطلاعاتی مانند نوع صفحه، نشانگرهای فضای آزاد محلی و اشارهگر به والدین یا فرزندان (بسته به نوع صفحه) است.
✨ نکته 9:
مدیریت حافظه پنهان (Cache Management) SQLite کاملاً بر اساس صفحات صورت میگیرد؛ یعنی، دادهها از دیسک به حافظه و بالعکس، به صورت واحد صفحه منتقل میشوند.
✨ نکته 10:
یکپارچگی و سازگاری صفحات در طول تراکنشها با استفاده از مکانیزمهای Journaling تضمین میشود که تغییرات موقت را قبل از دائمیسازی در صفحات اصلی ثبت میکنند.
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
🟣 موضوع : بررسی و مقایسه انواع ذخیرهسازی دادهها در SQLite
📖 سرفصل : صفحات (Pages) و انواع آنها
✨ نکته 1:
صفحات (Pages) کوچکترین واحد ذخیرهسازی و ورودی/خروجی (I/O) در فایل پایگاه داده SQLite محسوب میشوند و اندازهای ثابت دارند.
✨ نکته 2:
اندازه یک صفحه از ۵۱۲ بایت تا ۶۵۵۳۶ بایت متغیر است و در زمان ایجاد پایگاه داده تعیین شده و در هدر (Header) فایل ثبت میشود.
✨ نکته 3:
هر صفحه با یک شماره صفحه (Page Number) منحصربهفرد آدرسدهی میشود که صفحه شماره ۱ همواره شامل هدر پایگاه داده و ریشه B-tree طرحواره (Schema) است.
✨ نکته 4:
صفحات از نظر نوع به طور عمده شامل صفحات B-tree برای دادهها و اندیسها، و صفحات سیستمی مانند Freelist Pages هستند.
✨ نکته 5:
صفحات B-tree داخلی (Interior Pages) حاوی کلیدها و اشارهگرهایی به صفحات فرزند در سطوح پایینتر درخت هستند و هیچ داده کاربری را مستقیماً ذخیره نمیکنند.
✨ نکته 6:
صفحات B-tree برگ (Leaf Pages) پایینترین سطح درخت B-tree را تشکیل میدهند و وظیفه نگهداری دادههای واقعی سطرها در جدول یا مقادیر اندیس را بر عهده دارند.
✨ نکته 7:
صفحات Freelist برای ردیابی صفحاتی به کار میروند که حاوی دادههای معتبری نیستند (مانند صفحاتی که تمامی سطرهای آنها حذف شدهاند) و آماده استفاده مجدد هستند.
✨ نکته 8:
هر صفحه دارای یک هدر صفحه (Page Header) در ابتدای خود است که شامل اطلاعاتی مانند نوع صفحه، نشانگرهای فضای آزاد محلی و اشارهگر به والدین یا فرزندان (بسته به نوع صفحه) است.
✨ نکته 9:
مدیریت حافظه پنهان (Cache Management) SQLite کاملاً بر اساس صفحات صورت میگیرد؛ یعنی، دادهها از دیسک به حافظه و بالعکس، به صورت واحد صفحه منتقل میشوند.
✨ نکته 10:
یکپارچگی و سازگاری صفحات در طول تراکنشها با استفاده از مکانیزمهای Journaling تضمین میشود که تغییرات موقت را قبل از دائمیسازی در صفحات اصلی ثبت میکنند.
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
Telegram
آموزش کامپیوتر و برنامه نویسی tu24
* برنامه نویسی
* علوم کامپیوتر
* ریاضیات مورد نیاز علوم کامپیوتر
* هوش مصنوعی
* علوم داده
* داده کاوی
* بیگ دیتا
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs
* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
* علوم کامپیوتر
* ریاضیات مورد نیاز علوم کامپیوتر
* هوش مصنوعی
* علوم داده
* داده کاوی
* بیگ دیتا
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs
* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
ObjectPool قالبی برای مدیریت اشیاء پرهزینه است. ♻️
به جای ایجاد و حذف مکرر این اشیاء، آنها را در یک Pool نگهداری و دوباره استفاده میکنیم. 🧰
این کار، سربار ایجاد و حذف را کاهش داده و عملکرد را بهبود میبخشد. 🚀 برای مثال، در بازیسازی برای مدیریت گلولهها کاربرد دارد.
https://t.me/csharp7
به جای ایجاد و حذف مکرر این اشیاء، آنها را در یک Pool نگهداری و دوباره استفاده میکنیم. 🧰
این کار، سربار ایجاد و حذف را کاهش داده و عملکرد را بهبود میبخشد. 🚀 برای مثال، در بازیسازی برای مدیریت گلولهها کاربرد دارد.
https://t.me/csharp7
در C#، شما میتوانید رویدادهای سفارشی خود را با قابلیت ارسال دادههای خاص ایجاد کنید. این کار به شما امکان میدهد تا هنگام وقوع یک اتفاق در برنامه، اطلاعات مرتبط را همراه با اعلان رویداد به شنوندگان (event handlers) ارسال کنید.
برای این منظور، ابتدا باید یک کلاس برای دادههای رویداد (Event Data) ایجاد کنید که از
سپس، در کلاسی که رویداد را تعریف میکند، از این کلاس سفارشی برای تعریف نوع دادههای رویداد استفاده کنید. تعریف رویداد معمولاً شامل یک delegate و یک event است.
در نهایت، کلاسهای دیگر میتوانند با اشتراک در این رویداد، هنگام وقوع آن، دادههای ارسالی را دریافت و پردازش کنند.
این روش امکان انتقال اطلاعات دقیق و سفارشی را بین بخشهای مختلف برنامه از طریق مکانیسم رویداد فراهم میآورد. 🚀💡
https://t.me/csharp7
برای این منظور، ابتدا باید یک کلاس برای دادههای رویداد (Event Data) ایجاد کنید که از
EventArgs ارثبری میکند. این کلاس میتواند شامل هر نوع دادهای باشد که میخواهید ارسال کنید.public class MyCustomEventArgs : EventArgs
{
public string Message { get; }
public int Value { get; }
public MyCustomEventArgs(string message, int value)
{
Message = message;
Value = value;
}
}
سپس، در کلاسی که رویداد را تعریف میکند، از این کلاس سفارشی برای تعریف نوع دادههای رویداد استفاده کنید. تعریف رویداد معمولاً شامل یک delegate و یک event است.
public class EventPublisher
{
// تعریف delegate برای رویداد سفارشی
public delegate void MyCustomEventHandler(object sender, MyCustomEventArgs e);
// تعریف رویداد با استفاده از delegate
public event MyCustomEventHandler CustomEvent;
public void TriggerCustomEvent(string msg, int val)
{
// ایجاد نمونهای از دادههای رویداد
MyCustomEventArgs args = new MyCustomEventArgs(msg, val);
// فراخوانی رویداد در صورت وجود شنونده
OnCustomEvent(args);
}
protected virtual void OnCustomEvent(MyCustomEventArgs e)
{
// کپی کردن رویداد برای جلوگیری از رقابت وضعیت (thread-safety)
MyCustomEventHandler handler = CustomEvent;
handler?.Invoke(this, e);
}
}
در نهایت، کلاسهای دیگر میتوانند با اشتراک در این رویداد، هنگام وقوع آن، دادههای ارسالی را دریافت و پردازش کنند.
public class EventSubscriber
{
public void Subscribe(EventPublisher publisher)
{
publisher.CustomEvent += Publisher_CustomEvent;
}
private void Publisher_CustomEvent(object sender, MyCustomEventArgs e)
{
Console.WriteLine($"رویداد دریافت شد! پیام: {e.Message}, مقدار: {e.Value}");
}
}
این روش امکان انتقال اطلاعات دقیق و سفارشی را بین بخشهای مختلف برنامه از طریق مکانیسم رویداد فراهم میآورد. 🚀💡
https://t.me/csharp7
Telegram
آموزش C# و .Net
تعرفه تبلیغات :
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
CancellationTokenSource.CreateLinkedTokenSource دو یا چند CancellationToken را به هم وصل میکند. 🔗
با لغو شدن هر کدام از توکنهای مبدأ، توکنِ خروجی هم لغو میشود. ⏱️
این روش برای مدیریت عملیاتهای وابسته به هم در C# کاربرد دارد. 👍
https://t.me/csharp7
با لغو شدن هر کدام از توکنهای مبدأ، توکنِ خروجی هم لغو میشود. ⏱️
این روش برای مدیریت عملیاتهای وابسته به هم در C# کاربرد دارد. 👍
https://t.me/csharp7