🔵 کوییز #HTML
🟣 موضوع : مقدمهای بر HTML
🟢 سوال :
کدام تگ HTML برای ایجاد یک خط افقی جداکننده در محتوا استفاده میشود؟
گزینه ۱:
`<break>`
گزینه ۲:
`<line>`
گزینه ۳:
`<hr>`
گزینه ۴:
`<separator>`
🔵 گزینه صحیح:3
🟢 توضیح :
تگ `<hr>` (horizontal rule) برای ایجاد یک خط افقی که میتواند برای جدا کردن محتوای مختلف در یک صفحه وب استفاده شود، به کار میرود. این تگ یک تگ خود-بسته است.
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
🟣 موضوع : مقدمهای بر HTML
🟢 سوال :
کدام تگ HTML برای ایجاد یک خط افقی جداکننده در محتوا استفاده میشود؟
گزینه ۱:
`<break>`
گزینه ۲:
`<line>`
گزینه ۳:
`<hr>`
گزینه ۴:
`<separator>`
🔵 گزینه صحیح:
🟢 توضیح :
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
Telegram
آموزش کامپیوتر و برنامه نویسی tu24
* برنامه نویسی
* علوم کامپیوتر
* ریاضیات مورد نیاز علوم کامپیوتر
* هوش مصنوعی
* علوم داده
* داده کاوی
* بیگ دیتا
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs
* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
* علوم کامپیوتر
* ریاضیات مورد نیاز علوم کامپیوتر
* هوش مصنوعی
* علوم داده
* داده کاوی
* بیگ دیتا
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs
* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
الگویابی (Pattern matching) در C# با لامبدا، امکان فیلتر و انتخاب اعضای کالکشن رو سادهتر میکنه.
فرض کنید لیستی از `object` دارید. میتونید با یه خط کد، فقط استرینگها رو انتخاب کنید:
```csharp
list.Where(x => x is string s).Select(x => (string)x);
```
این کد، هم نوع رو بررسی میکنه (string بودن) و هم اون رو به یه متغیر جدید (s) تبدیل میکنه. 👌💻
https://t.me/csharp7
فرض کنید لیستی از `object` دارید. میتونید با یه خط کد، فقط استرینگها رو انتخاب کنید:
```csharp
list.Where(x => x is string s).Select(x => (string)x);
```
این کد، هم نوع رو بررسی میکنه (string بودن) و هم اون رو به یه متغیر جدید (s) تبدیل میکنه. 👌💻
https://t.me/csharp7
در زبان C#،
در نسخههای جدیدتر C#، قابلیتی به نام Default Implementations به
سازگاری با نسخههای قبلی (Backward Compatibility): هنگامی که یک متد جدید به یک `interface` موجود اضافه میشود، کلاسهایی که قبلاً آن `interface` را پیادهسازی کردهاند، بدون نیاز به تغییر، همچنان کار خواهند کرد. چون پیادهسازی پیشفرض در `interface` به آنها کمک میکند.
کاهش کدهای تکراری: اگر پیادهسازی یک متد برای بسیاری از کلاسها یکسان باشد، میتوان آن را به صورت پیشفرض در
این ویژگی، انعطافپذیری C# را در طراحی سیستمهای پیچیده و مدیریت تکامل کد افزایش میدهد. 🚀💡
https://t.me/csharp7
interfaceها قراردادهایی را تعریف میکنند که کلاسها میتوانند آنها را پیادهسازی کنند. این امر به ایجاد پیماننامههای رفتاری کمک کرده و امکان پلیمورفیسم را فراهم میآورد.در نسخههای جدیدتر C#، قابلیتی به نام Default Implementations به
interfaceها اضافه شده است. این قابلیت به شما اجازه میدهد تا یک پیادهسازی پیشفرض برای متدها در خود interface ارائه دهید. این موضوع مزایای قابل توجهی دارد: سازگاری با نسخههای قبلی (Backward Compatibility): هنگامی که یک متد جدید به یک `interface` موجود اضافه میشود، کلاسهایی که قبلاً آن `interface` را پیادهسازی کردهاند، بدون نیاز به تغییر، همچنان کار خواهند کرد. چون پیادهسازی پیشفرض در `interface` به آنها کمک میکند.
کاهش کدهای تکراری: اگر پیادهسازی یک متد برای بسیاری از کلاسها یکسان باشد، میتوان آن را به صورت پیشفرض در
interface تعریف کرد و از تکرار کد جلوگیری نمود.این ویژگی، انعطافپذیری C# را در طراحی سیستمهای پیچیده و مدیریت تکامل کد افزایش میدهد. 🚀💡
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.
در C#، اعتبارسنجی ورودیهای کاربر برای جلوگیری از مشکلات امنیتی، بهخصوص هنگام کار با پایگاه داده، امری حیاتی است. این اعتبارسنجی میتواند شامل بررسی نوع داده، طول مجاز، وجود کاراکترهای خاص و جلوگیری از حملات تزریق SQL باشد.
برای مثال، قبل از ذخیره کردن نام کاربری در پایگاه داده، میتوانید از کد زیر برای اطمینان از عدم وجود کاراکترهای غیرمجاز استفاده کنید:
همچنین، برای جلوگیری از حملات تزریق SQL، هرگز نباید ورودی کاربر را مستقیماً در کوئری SQL قرار دهید. استفاده از پارامترهای آماده (Parameterized Queries) راه حل امنی است.
اعتبارسنجی در سمت سرور همیشه باید انجام شود، حتی اگر در سمت کلاینت نیز اعتبارسنجی انجام شده باشد. این لایه دفاعی اضافی، امنیت برنامه شما را به طور قابل توجهی افزایش میدهد. 🛡️✅
https://t.me/csharp7
برای مثال، قبل از ذخیره کردن نام کاربری در پایگاه داده، میتوانید از کد زیر برای اطمینان از عدم وجود کاراکترهای غیرمجاز استفاده کنید:
using System.Text.RegularExpressions;
public class InputValidator
{
public static bool IsValidUsername(string username)
{
// اجازه دادن فقط به حروف الفبا، اعداد و خط تیره
string pattern = @"^[a-zA-Z0-9_-]+$";
return Regex.IsMatch(username, pattern);
}
}
همچنین، برای جلوگیری از حملات تزریق SQL، هرگز نباید ورودی کاربر را مستقیماً در کوئری SQL قرار دهید. استفاده از پارامترهای آماده (Parameterized Queries) راه حل امنی است.
using System.Data.SqlClient;
public class DatabaseManager
{
public void AddUser(string username, string email)
{
string connectionString = "YourConnectionString";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string query = "INSERT INTO Users (Username, Email) VALUES (@Username, @Email)";
using (SqlCommand command = new SqlCommand(query, connection))
{
// استفاده از پارامترها برای جلوگیری از تزریق SQL
command.Parameters.AddWithValue("@Username", username);
command.Parameters.AddWithValue("@Email", email);
command.ExecuteNonQuery();
}
}
}
}
اعتبارسنجی در سمت سرور همیشه باید انجام شود، حتی اگر در سمت کلاینت نیز اعتبارسنجی انجام شده باشد. این لایه دفاعی اضافی، امنیت برنامه شما را به طور قابل توجهی افزایش میدهد. 🛡️✅
https://t.me/csharp7
Telegram
آموزش C# و .Net
تعرفه تبلیغات :
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
This media is not supported in your browser
VIEW IN TELEGRAM
🔵 C# Beginners Tutorial - 111 - Editing XML File
🟢 کیفیت : متوسط
🔴 توجه کنید با تنظیمات خود تلگرام می توانید حجم و کیفیت ویدیو را بر اساس سرعت اینترنت خود تنظیم نمایید.
🟣 C# Beginners Tutorials Playlist
🟢 زبان آموزش: انگلیسی
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
🟢 کیفیت : متوسط
🔴 توجه کنید با تنظیمات خود تلگرام می توانید حجم و کیفیت ویدیو را بر اساس سرعت اینترنت خود تنظیم نمایید.
🟣 C# Beginners Tutorials Playlist
🟢 زبان آموزش: انگلیسی
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
پایتون بازا سلام! 👋
تاحالا شده تو کدتون یه مقداری رو برگردونید ولی بهش نیاز نداشته باشید؟ 🤔
پایتون یه راه حل باحال داره: `_`
```python
x, _ = (10, 20)
print(x) # Output: 10
```
اینجا `_` مقدار 20 رو میگیره ولی هیچ جا استفاده نمیشه! 😎 خیلی تمیز و مرتب، نه؟ 👌
#پایتون #ترفند
https://t.me/python7ir
تاحالا شده تو کدتون یه مقداری رو برگردونید ولی بهش نیاز نداشته باشید؟ 🤔
پایتون یه راه حل باحال داره: `_`
```python
x, _ = (10, 20)
print(x) # Output: 10
```
اینجا `_` مقدار 20 رو میگیره ولی هیچ جا استفاده نمیشه! 😎 خیلی تمیز و مرتب، نه؟ 👌
#پایتون #ترفند
https://t.me/python7ir
🔵 با عضویت در لیست تلگرامی جامع آموزش زبان زیر عضو بی نظیرترین و کامل ترین مجموعه آموزش زبان انگلیسی تلگرامی شوید:
🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :
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.
در مقابل،
به طور خلاصه:
`SortedList`: برای سناریوهایی که تعداد عملیات بازیابی (مانند `TryGetValue` یا دسترسی با ایندکس) بیشتر از عملیات افزودن و حذف است، مناسبتر است. همچنین اگر نیاز به دسترسی به عناصر بر اساس ایندکس عددی دارید، `SortedList` این قابلیت را ارائه میدهد.
هر دو مجموعه تضمین میکنند که عناصر بر اساس کلید مرتب شدهاند.
هر دو مجموعه دادهها را به ترتیب کلید مرتب میکنند.
https://t.me/csharp7
SortedList<TKey, TValue> و SortedDictionary<TKey, TValue> هر دو برای نگهداری دادههای مرتب شده بر اساس کلید استفاده میشوند، اما تفاوتهای اساسی در نحوه پیادهسازی و عملکرد دارند.
SortedList<TKey, TValue> در واقع ترکیبی از دو آرایه است: یکی برای کلیدها و دیگری برای مقادیر. این ساختار برای جستجو و بازیابی سریع است، زیرا کلیدها و مقادیر در دو آرایه جداگانه ذخیره میشوند و میتوان از جستجوی دودویی (binary search) برای یافتن عناصر استفاده کرد. این امر باعث میشود که عملیات Add و Remove نسبتاً کند باشند، زیرا نیاز به جابجایی عناصر در آرایهها دارند.در مقابل،
SortedDictionary<TKey, TValue> از یک ساختار داده درختی (معمولاً درخت قرمز-سیاه) استفاده میکند. این ساختار برای افزودن و حذف عناصر بهینه است، زیرا نیازی به جابجایی تعداد زیادی عنصر نیست. با این حال، ممکن است در بازیابی عناصر کمی کندتر از SortedList عمل کند.به طور خلاصه:
`SortedList`: برای سناریوهایی که تعداد عملیات بازیابی (مانند `TryGetValue` یا دسترسی با ایندکس) بیشتر از عملیات افزودن و حذف است، مناسبتر است. همچنین اگر نیاز به دسترسی به عناصر بر اساس ایندکس عددی دارید، `SortedList` این قابلیت را ارائه میدهد.
SortedDictionary: برای سناریوهایی که تعداد عملیات افزودن و حذف دادهها زیاد است و نیاز به حفظ مرتب بودن دادهها دارید، انتخاب بهتری است.هر دو مجموعه تضمین میکنند که عناصر بر اساس کلید مرتب شدهاند.
using System;
using System.Collections.Generic;
public class Example
{
public static void Main(string[] args)
{
// مثال با SortedList
SortedList<int, string> sortedList = new SortedList<int, string>();
sortedList.Add(3, "Three");
sortedList.Add(1, "One");
sortedList.Add(2, "Two");
Console.WriteLine("SortedList:");
foreach (var kvp in sortedList)
{
Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
}
// مثال با SortedDictionary
SortedDictionary<int, string> sortedDictionary = new SortedDictionary<int, string>();
sortedDictionary.Add(3, "Three");
sortedDictionary.Add(1, "One");
sortedDictionary.Add(2, "Two");
Console.WriteLine("\nSortedDictionary:");
foreach (var kvp in sortedDictionary)
{
Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
}
}
}
هر دو مجموعه دادهها را به ترتیب کلید مرتب میکنند.
SortedList از دو آرایه برای ذخیره دادهها استفاده میکند که بازیابی را سریع میکند اما افزودن و حذف را کندتر، در حالی که SortedDictionary از ساختار درختی استفاده میکند که افزودن و حذف را بهینه میکند. 🌳✨https://t.me/csharp7
Telegram
آموزش C# و .Net
تعرفه تبلیغات :
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
BenchmarkDotNet در نسخه جدید، Attributeهای جذابتری برای پیکربندی بنچمارکها ارائه کرده. ⚙️
قبلاً برای تعیین تعداد تکرار یک عملیات، باید از `IterationCount` استفاده میکردیم. حالا `WarmupCount` و `MeasurementCount` جایگزین شدند. 🔥
`WarmupCount` تعداد دفعات اجرای گرمکردن (Warm-up) و `MeasurementCount` تعداد دفعات اندازهگیری دقیق عملکرد رو مشخص میکنه. اینطوری کنترل بهتری روی فرآیند بنچمارکگیری داریم. 👍
https://t.me/csharp7
قبلاً برای تعیین تعداد تکرار یک عملیات، باید از `IterationCount` استفاده میکردیم. حالا `WarmupCount` و `MeasurementCount` جایگزین شدند. 🔥
`WarmupCount` تعداد دفعات اجرای گرمکردن (Warm-up) و `MeasurementCount` تعداد دفعات اندازهگیری دقیق عملکرد رو مشخص میکنه. اینطوری کنترل بهتری روی فرآیند بنچمارکگیری داریم. 👍
https://t.me/csharp7
در C# میشه یک ID generator با Type Safety بالا داشت. 🤔
```csharp
record ProductId(Guid Value);
var id = new ProductId(Guid.NewGuid());
```
اینطوری دیگه اشتباهی ProductId رو با CustomerId جابجا نمیکنید. ✅ این متد از باگهای احتمالی جلوگیری میکنه. 🛡️
https://t.me/csharp7
```csharp
record ProductId(Guid Value);
var id = new ProductId(Guid.NewGuid());
```
اینطوری دیگه اشتباهی ProductId رو با CustomerId جابجا نمیکنید. ✅ این متد از باگهای احتمالی جلوگیری میکنه. 🛡️
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.
MongoDB یک پایگاه داده NoSQL محبوب است که به دلیل انعطافپذیری و مقیاسپذیری بالا شناخته شده است. برای استفاده از MongoDB در پروژههای C#، ابتدا باید آن را نصب کنید.
نحوه راهاندازی MongoDB:
1. دانلود و نصب MongoDB: به وبسایت رسمی MongoDB مراجعه کرده و نسخه Community Server را دانلود و نصب کنید.
2. راهاندازی سرویس MongoDB: پس از نصب، سرویس MongoDB را راهاندازی کنید. این سرویس معمولاً به طور خودکار پس از نصب شروع به کار میکند.
3. نصب درایور MongoDB برای C#: از طریق NuGet Package Manager در Visual Studio، پکیج
با این مراحل، شما آماده استفاده از MongoDB در برنامههای C# خود خواهید بود. 🚀💾
https://t.me/csharp7
نحوه راهاندازی MongoDB:
1. دانلود و نصب MongoDB: به وبسایت رسمی MongoDB مراجعه کرده و نسخه Community Server را دانلود و نصب کنید.
2. راهاندازی سرویس MongoDB: پس از نصب، سرویس MongoDB را راهاندازی کنید. این سرویس معمولاً به طور خودکار پس از نصب شروع به کار میکند.
3. نصب درایور MongoDB برای C#: از طریق NuGet Package Manager در Visual Studio، پکیج
MongoDB.Driver را نصب کنید.با این مراحل، شما آماده استفاده از MongoDB در برنامههای C# خود خواهید بود. 🚀💾
https://t.me/csharp7
در C#، ساختارها (Structs) به عنوان انواع مقداری (Value Types) شناخته میشوند. این بدان معناست که هنگام تخصیص یک ساختار به متغیر دیگر یا ارسال آن به متد، کپی کاملی از دادهها انجام میشود، نه فقط ارجاع به آدرس حافظه.
این رفتار با کلاسها (Classes) که انواع ارجاعی (Reference Types) هستند، تفاوت اساسی دارد. در انواع ارجاعی، فقط آدرس حافظه کپی میشود و هر دو متغیر به یک شیء در حافظه اشاره میکنند.
اهمیت این تفاوت در مدیریت حافظه و عملکرد برنامه نمایان میشود. ساختارها معمولاً برای نگهداری دادههای کوچک و مرتبط استفاده میشوند و به دلیل کپی شدن مستقیم مقادیر، سربار کمتری در مدیریت حافظه نسبت به کلاسها دارند. همچنین، به دلیل قرارگیری در استک (Stack) در بسیاری از موارد، دسترسی به آنها سریعتر است.
مثال ساده از تعریف یک ساختار:
هنگامی که یک متغیر از نوع
تغییر در
ساختارها برای نمایش مقادیر ساده مانند مختصات، رنگها، تاریخ و زمان یا هر مجموعهای از دادهها که منطقاً یک واحد محسوب میشوند و نیازی به ارثبری پیچیده ندارند، بسیار مناسب هستند. 💡
این رویکرد به بهینهسازی مصرف حافظه و افزایش سرعت اجرای برنامههای C# کمک شایانی میکند. 🚀
https://t.me/csharp7
این رفتار با کلاسها (Classes) که انواع ارجاعی (Reference Types) هستند، تفاوت اساسی دارد. در انواع ارجاعی، فقط آدرس حافظه کپی میشود و هر دو متغیر به یک شیء در حافظه اشاره میکنند.
اهمیت این تفاوت در مدیریت حافظه و عملکرد برنامه نمایان میشود. ساختارها معمولاً برای نگهداری دادههای کوچک و مرتبط استفاده میشوند و به دلیل کپی شدن مستقیم مقادیر، سربار کمتری در مدیریت حافظه نسبت به کلاسها دارند. همچنین، به دلیل قرارگیری در استک (Stack) در بسیاری از موارد، دسترسی به آنها سریعتر است.
مثال ساده از تعریف یک ساختار:
public struct Point
{
public int X;
public int Y;
}
هنگامی که یک متغیر از نوع
Point تعریف میکنید:Point p1 = new Point { X = 10, Y = 20 };
Point p2 = p1; // کپی کاملی از p1 به p2 انجام میشود
تغییر در
p2.X تأثیری بر p1.X نخواهد داشت.ساختارها برای نمایش مقادیر ساده مانند مختصات، رنگها، تاریخ و زمان یا هر مجموعهای از دادهها که منطقاً یک واحد محسوب میشوند و نیازی به ارثبری پیچیده ندارند، بسیار مناسب هستند. 💡
این رویکرد به بهینهسازی مصرف حافظه و افزایش سرعت اجرای برنامههای C# کمک شایانی میکند. 🚀
https://t.me/csharp7
Telegram
آموزش C# و .Net
تعرفه تبلیغات :
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
در C#، برای تعریف ساختارهای دادهای سفارشی، از
یک ساختار برای نمایش مختصات دو بعدی میتواند به این صورت تعریف شود:
برای استفاده از این ساختار، یک نمونه از آن ایجاد میکنیم:
ساختارها به صورت value type عمل میکنند، یعنی هنگام تخصیص به متغیر دیگر یا ارسال به متد، یک کپی کامل از دادهها ایجاد میشود. 📌
این ویژگی میتواند در مدیریت حافظه و عملکرد برنامه موثر باشد. 💡
https://t.me/csharp7
struct استفاده میکنیم. ساختارها مشابه کلاسها هستند اما با تفاوتهای کلیدی در نحوه ذخیرهسازی و انتقال.یک ساختار برای نمایش مختصات دو بعدی میتواند به این صورت تعریف شود:
struct Point
{
public int X;
public int Y;
}
برای استفاده از این ساختار، یک نمونه از آن ایجاد میکنیم:
Point p;
p.X = 10;
p.Y = 20;
Console.WriteLine($"X: {p.X}, Y: {p.Y}"); // خروجی: X: 10, Y: 20
ساختارها به صورت value type عمل میکنند، یعنی هنگام تخصیص به متغیر دیگر یا ارسال به متد، یک کپی کامل از دادهها ایجاد میشود. 📌
این ویژگی میتواند در مدیریت حافظه و عملکرد برنامه موثر باشد. 💡
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.
در WPF، برای تغییر ظاهر و رفتار یک کنترل بدون تغییر ساختار اصلی آن، میتوان از
برای مثال، برای تغییر ظاهر یک دکمه استاندارد در WPF، میتوانید یک
در این مثال،
این روش امکان ایجاد رابطهای کاربری بسیار پویا و منحصر به فرد را فراهم میکند و به توسعهدهندگان اجازه میدهد تا فراتر از ظاهر استاندارد کنترلهای WPF بروند. 🎨
https://t.me/csharp7
ControlTemplate استفاده کرد. این قابلیت به شما امکان میدهد تا ظاهر پیشفرض کنترلهایی مانند دکمه، جعبه متن و غیره را کاملاً بازنویسی کرده و ظاهری سفارشی به اپلیکیشن خود ببخشید.برای مثال، برای تغییر ظاهر یک دکمه استاندارد در WPF، میتوانید یک
ControlTemplate جدید تعریف کنید. این تمپلیت، ساختار بصری جدیدی را برای دکمه مشخص میکند. در این تمپلیت، شما میتوانید از عناصر مختلف WPF مانند Grid, StackPanel, TextBlock, Border و حتی سایر کنترلها استفاده کنید.<Window.Resources>
<ControlTemplate x:Key="CustomButtonTemplate" TargetType="Button">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="5">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Window.Resources>
<Button Content="دکمه سفارشی" Template="{StaticResource CustomButtonTemplate}"
Background="LightBlue" BorderBrush="DarkBlue" Height="40" Width="120"/>
در این مثال،
TargetType="Button" مشخص میکند که این تمپلیت برای دکمهها اعمال میشود. ContentPresenter محتوای اصلی دکمه (مانند متن آن) را نمایش میدهد. ویژگیهای TemplateBinding به تمپلیت اجازه میدهند تا ویژگیهای اصلی کنترل (مانند Background و BorderBrush) را به ارث ببرد. با اعمال این ControlTemplate به یک Button، ظاهر پیشفرض آن با یک کادر با گوشههای گرد و رنگ پسزمینه آبی روشن جایگزین میشود. ✨این روش امکان ایجاد رابطهای کاربری بسیار پویا و منحصر به فرد را فراهم میکند و به توسعهدهندگان اجازه میدهد تا فراتر از ظاهر استاندارد کنترلهای WPF بروند. 🎨
https://t.me/csharp7
Telegram
آموزش C# و .Net
تعرفه تبلیغات :
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
🔵 کوییز #سی_شارپ
🟣 موضوع : استفاده از ValueTuple در نسخههای جدید C#
🟢 سوال :
کدام یک از موارد زیر یک مثال از کاربرد ValueTuple است؟
گزینه ۱:
مدیریت پایگاه داده
گزینه ۲:
بازگرداندن چند مقدار از یک تابع بدون تعریف کلاس جدید
گزینه ۳:
محاسبات ریاضی پیچیده
گزینه ۴:
ایجاد انیمیشنهای گرافیکی
🔵 گزینه صحیح:2
🟢 توضیح :
بازگرداندن چند مقدار از یک تابع بدون تعریف کلاس جدید، یک مثال از کاربرد ValueTuple است.
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
🟣 موضوع : استفاده از ValueTuple در نسخههای جدید C#
🟢 سوال :
کدام یک از موارد زیر یک مثال از کاربرد ValueTuple است؟
گزینه ۱:
مدیریت پایگاه داده
گزینه ۲:
بازگرداندن چند مقدار از یک تابع بدون تعریف کلاس جدید
گزینه ۳:
محاسبات ریاضی پیچیده
گزینه ۴:
ایجاد انیمیشنهای گرافیکی
🔵 گزینه صحیح:
🟢 توضیح :
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
Telegram
آموزش کامپیوتر و برنامه نویسی tu24
* برنامه نویسی
* علوم کامپیوتر
* ریاضیات مورد نیاز علوم کامپیوتر
* هوش مصنوعی
* علوم داده
* داده کاوی
* بیگ دیتا
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs
* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
* علوم کامپیوتر
* ریاضیات مورد نیاز علوم کامپیوتر
* هوش مصنوعی
* علوم داده
* داده کاوی
* بیگ دیتا
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs
* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
در C#، مخفیسازی (Encapsulation) یکی از اصول کلیدی برنامهنویسی شیءگراست. این اصل به ما کمک میکند تا جزئیات پیادهسازی یک کلاس را از دنیای بیرون پنهان کنیم و تنها واسطی را برای تعامل با آن کلاس فراهم آوریم. این کار باعث افزایش امنیت، قابلیت نگهداری و خوانایی کد میشود.
برای دستیابی به مخفیسازی، از سطوح دسترسی (Access Modifiers) مانند `private`، `protected` و `public` استفاده میشود. معمولاً اعضای کلاس (فیلدها و متدها) به صورت `private` تعریف شده و برای دسترسی و تغییر آنها، از متدهای `public` به نام Getter و Setter (یا Properties) استفاده میشود.
استفاده از الگوهای طراحی ساده (Simple Design Patterns) مانند "Wrapper" یا "Adapter" نیز میتواند به سازماندهی بهتر کد و مخفیسازی موثرتر پیادهسازی کمک کند. این الگوها به ما اجازه میدهند تا کدهای موجود را بدون تغییر اساسی، به شکلی استانداردتر و قابل فهمتر در اختیار داشته باشیم. 💻🔒✨
https://t.me/csharp7
برای دستیابی به مخفیسازی، از سطوح دسترسی (Access Modifiers) مانند `private`، `protected` و `public` استفاده میشود. معمولاً اعضای کلاس (فیلدها و متدها) به صورت `private` تعریف شده و برای دسترسی و تغییر آنها، از متدهای `public` به نام Getter و Setter (یا Properties) استفاده میشود.
استفاده از الگوهای طراحی ساده (Simple Design Patterns) مانند "Wrapper" یا "Adapter" نیز میتواند به سازماندهی بهتر کد و مخفیسازی موثرتر پیادهسازی کمک کند. این الگوها به ما اجازه میدهند تا کدهای موجود را بدون تغییر اساسی، به شکلی استانداردتر و قابل فهمتر در اختیار داشته باشیم. 💻🔒✨
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.
در C# رویدادها (Events) میتوانند `partial` باشند. این یعنی تعریف یک رویداد میتواند در چند فایل `partial class` توزیع شود.
این قابلیت، مدیریت رویدادهای پیچیده را در پروژههای بزرگ آسانتر میکند.
فرض کنید یک رویداد دارید که هندلرهای مختلفی در قسمتهای مختلف برنامه به آن متصل میشوند. با استفاده از `partial events` میتوانید تعریف و هندلرهای مربوط به هر بخش را در فایلهای جداگانه نگهداری کنید. 🧩
به این ترتیب، کد شما منظمتر و خواناتر خواهد بود. 🧹
https://t.me/csharp7
این قابلیت، مدیریت رویدادهای پیچیده را در پروژههای بزرگ آسانتر میکند.
فرض کنید یک رویداد دارید که هندلرهای مختلفی در قسمتهای مختلف برنامه به آن متصل میشوند. با استفاده از `partial events` میتوانید تعریف و هندلرهای مربوط به هر بخش را در فایلهای جداگانه نگهداری کنید. 🧩
به این ترتیب، کد شما منظمتر و خواناتر خواهد بود. 🧹
https://t.me/csharp7