C#

csharp
C# (/ˌsiː ˈʃɑːrp/ see SHARP) is a general-purpose high-level programming language supporting multiple paradigms.
1 عضو
از دی 1403
mohsen2 روز قبل

چرا نباید از Thread.Abort() در C# استفاده کرد؟

استفاده از متد Thread.Abort() در برنامه‌نویسی بدلیل تمیز به پایان نرساندن ترد می‌تواند عواقب جدی به همراه داشته باشد. زیرا این متد به طور ناگهانی تلاش می‌کند که یک thread را از بیرون آن متوقف کند و ممکن است کدهای مربوط به آزادسازی منابع و ... اجرا ...
رای
0
mohsen3 روز قبل

محدود کردن تعداد تسکهای غیر همزمان یک عملیات در C#

فرض کنید که قرار است برنامه ای بنویسیم و عملیاتی را به صورت چندین تسک غیر همزمان به صورت موازی انجام دهیم. برای مثال قرار است لیستی از صفحات وب را دانلود کرده و محتوای آن را پردازش کنیم. بدیهی است که عملیات دانلود و پردازش هر صفحه از صفحه دیگر جداست و می ...
رای
0
mohsen5 روز قبل

تقسیم لیستی از اشیا به چند لیست‌ با استفاده از LINQ در C#

برای تقسیم یک لیست به چند لیست، بسته به نیازمان، می توانیم از روش های مختلفی در سی شارپ استفاده کنیم: 1. استفاده از GroupBy: یکی از روش‌های متداول استفاده از تابع GroupBy در LINQ است. در این روش با تقسیم کردن ایندکس‌ها به تعداد مورد نظر می‌توانید اشیا را ...
رای
0
mohsen5 روز قبل

چگونه به صورت خودکار کدهای یک کلاس C# را از روی یک شی JSON بسازیم؟

فرض کنید که رشته JSON زیر به ما داده شده و از ما خواسته اند که از روی آن کلاس های مرتبط در C# را ایجاد کنیم: { "name": "", "address": { "street": "", "city": "", "province": "", "postalCode": "", "country": "" }, "phoneDay": "", "phoneCell": ...
رای
0
mohsen5 روز قبل

تبدیل رشته به enum در C#

برای تبدیل یک رشته به enumeration می‌توانید از متد Enum.TryParse استفاده کنید که در نسخه‌های .NET 4.0 و بالاتر در دسترس است. این متد به شما این امکان را می‌دهد که بدون ایجاد اکسپشن، سعی کنید یک رشته را به مقدار enum مربوطه تبدیل کنید. به‌عنوان مثال، کد ...
رای
0
mohsen1 هفته قبل

نحوه نمایش زمان نسبی در C#

فرض کنیم نیاز داریم زمان را در قالب‌هایی نسبی مانند "2 ساعت پیش" به کاربر نمایش دهیم. برای این کار باید از محاسبه زمان گذشته برای نمایش زمان استفاده کنیم. برای شروع، با تعیین یک متغیر TimeSpan که تفاوت زمانی بین زمان فعلی و زمان مدنظر را محاسبه می‌کند، ...
رای
0
mohsen1 هفته قبل

تفاوت میان اپراتور == و تابع Equals در C# چیست؟

زمانی که از عملگر == برای مقایسه اشیا استفاده می‌شود، مخصوصاً زمانی که طرف چپ مقایسه از نوع object باشد، این عملگر به System.Object.ReferenceEquals ارجاع می‌دهد. این بدان معناست که == در واقع به مقایسه آدرس‌های حافظه (reference) می‌پردازد، نه محتویات ...
رای
0
mohsen1 هفته قبل

چگونه در سی شارپ ورودی متنی ای بسازیم که فقط اعداد را قبول کند؟

یکی از ساده‌ترین روش‌ها برای درست کردن ورودی متنی (TextBox) که فقط ورودی عددی بگیرد استفاده از کنترل NumericUpDown است. این کنترل به طور خودکار فیلتر کردن ورودی‌ها را انجام می‌دهد و همچنین به کاربر اجازه می‌دهد که با استفاده از دکمه‌های بالا و پایین در ...
رای
0
mohsen1 هفته قبل

مشکل تعیین نوع 'async' برای متد 'Main' اپلیکیشن کنسول در سی شارپ

در ویژوال استودیو 2012، کامپایلر اجازه استفاده از متد async Main را نمی دهد. در نسخه 2010 ویژوال استودیو این کار مجاز بود اما استفاده از آن توصیه نشده بود. در ویژوال استودیو 2017 آپدیت 3 (15.3) امکان استفاده از متد async Main همراه سی شارپ نسخه 7 اضافه ...
رای
0
mohsen1 هفته قبل

نحوه انجام Impersonation در .NET

اصطلاح Impersonation به معنای اجرای کد تحت یک حساب کاربری خاص است. استفاده از WindowsIdentity.RunImpersonated بهترین راه برای Impersonation در نسخه‌های جدید استفاده از متد WindowsIdentity.RunImpersonated است. این متد یک handle بعنوان توکن کاربر و یک ...
رای
0
mohsen2 هفته قبل

چگونه می‌توان یک AuthorizeAttribute سفارشی در ASP.NET Core ایجاد کرد؟

در حال حاضر، برای ایجاد یک AuthorizeAttribute سفارشی در ASP.NET Core، روش‌های جدیدی نسبت به نسخه‌های قبلی این فریمورک وجود دارد. ابتدا باید از [Authorize] برای مشخص کردن سیاست‌های خود استفاده کنید. مثلاً: [Authorize(Policy = "YouNeedToBe18ToDoThis")] این ...
رای
0
mohsen2 هفته قبل

گنجاندن DLLها در فایل اجرایی کامپایل شده در C#

در بسیاری از مواقع، برای ساده سازی توزیع و نصب برنامه‌ به دنبال این هستیم که DLLها و وابستگی ها را در یک فایل اجرایی C# جا دهیم و در نتیجه فقط یک فایل برای توزیع داشته باشیم. یکی از بهترین و آسان‌ترین روشها برای گنجاندن DLLها در فایل اجرایی، استفاده از ...
رای
0
mohsen2 هفته قبل

چرا در سی شارپ هنگامی که متد Equals را override می‌کنیم باید متد GetHashCode را نیز اورراید کنیم؟

در برنامه‌نویسی شی گرا، روش‌های Equals و GetHashCode به طور گسترده‌ای برای مقایسه اشیا و استفاده از آن‌ها در ساختارهای داده‌ای مانند Dictionary و HashSet مورد استفاده قرار می‌گیرند. هنگامی که شما متد Equals را override می‌کنید، شما در واقع یک منطق خاص ...
رای
0
mohsen2 هفته قبل

بررسی حساسیت به حروف بزرگ و کوچک در متد Contains در سی شارپ

متد Contains برای رشته ها در دات نت با ورژن های قدیمی تر از .net core 2 و .net 5 به طور پیش‌فرض حساس به حروف بزرگ و کوچک است، برای همین این متد بدون در نظر گرفتن کوچکی یا بزرگی حروف کار نمی کند. یک راه برای پیاده کردن روش مشابه، استفاده از متد IndexOf ...
رای
0
mohsen2 هفته قبل

روش انجام کپی عمیق از یک شی در .NET

استفاده از BinaryFormatter یکی از روش‌های محبوب برای کپی عمیق استفاده از BinaryFormatter است. به طور خاص، می‌توانید یک متد عمومی به شکل زیر ایجاد کنید: public static T DeepClone<T>(this T obj) { using (var ms = new MemoryStream()) { var formatter = new ...
رای
0
mohsen2 هفته قبل

نحوه فراخوانی متدهای غیر همزمان از متدهای همزمان در C#

در زبان C#، متدهای غیرهمزمان (async) به گونه‌ای طراحی شده‌اند که بتوانند بدون مسدود کردن ترد (Thread) اصلی، عملیات‌های زمان‌ بر را انجام دهند. اما در برخی موارد، ممکن است نیاز داشته باشید که یک متد غیر همزمان را از یک متد همزمان فراخوانی کنید. این موضوع ...
رای
0