C#
csharp
C# (/ˌsiː ˈʃɑːrp/ see SHARP) is a general-purpose high-level programming language supporting multiple paradigms.
1 عضو
از دی 1403
mohsen•2 روز قبل
چرا نباید از Thread.Abort() در C# استفاده کرد؟
استفاده از متد Thread.Abort() در برنامهنویسی بدلیل تمیز به پایان نرساندن ترد میتواند عواقب جدی به همراه داشته باشد. زیرا این متد به طور ناگهانی تلاش میکند که یک thread را از بیرون آن متوقف کند و ممکن است کدهای مربوط به آزادسازی منابع و ... اجرا ...
رای
0
mohsen•3 روز قبل
محدود کردن تعداد تسکهای غیر همزمان یک عملیات در C#
فرض کنید که قرار است برنامه ای بنویسیم و عملیاتی را به صورت چندین تسک غیر همزمان به صورت موازی انجام دهیم. برای مثال قرار است لیستی از صفحات وب را دانلود کرده و محتوای آن را پردازش کنیم. بدیهی است که عملیات دانلود و پردازش هر صفحه از صفحه دیگر جداست و می ...
رای
0
mohsen•5 روز قبل
تقسیم لیستی از اشیا به چند لیست با استفاده از LINQ در C#
برای تقسیم یک لیست به چند لیست، بسته به نیازمان، می توانیم از روش های مختلفی در سی شارپ استفاده کنیم:
1. استفاده از GroupBy:
یکی از روشهای متداول استفاده از تابع GroupBy در LINQ است. در این روش با تقسیم کردن ایندکسها به تعداد مورد نظر میتوانید اشیا را ...
رای
0
mohsen•5 روز قبل
چگونه به صورت خودکار کدهای یک کلاس C# را از روی یک شی JSON بسازیم؟
فرض کنید که رشته JSON زیر به ما داده شده و از ما خواسته اند که از روی آن کلاس های مرتبط در C# را ایجاد کنیم:
{
"name": "",
"address": {
"street": "",
"city": "",
"province": "",
"postalCode": "",
"country": ""
},
"phoneDay": "",
"phoneCell": ...
رای
0
mohsen•5 روز قبل
تبدیل رشته به enum در C#
برای تبدیل یک رشته به enumeration میتوانید از متد Enum.TryParse استفاده کنید که در نسخههای .NET 4.0 و بالاتر در دسترس است. این متد به شما این امکان را میدهد که بدون ایجاد اکسپشن، سعی کنید یک رشته را به مقدار enum مربوطه تبدیل کنید.
بهعنوان مثال، کد ...
رای
0
mohsen•1 هفته قبل
نحوه نمایش زمان نسبی در C#
فرض کنیم نیاز داریم زمان را در قالبهایی نسبی مانند "2 ساعت پیش" به کاربر نمایش دهیم. برای این کار باید از محاسبه زمان گذشته برای نمایش زمان استفاده کنیم.
برای شروع، با تعیین یک متغیر TimeSpan که تفاوت زمانی بین زمان فعلی و زمان مدنظر را محاسبه میکند، ...
رای
0
mohsen•1 هفته قبل
تفاوت میان اپراتور == و تابع Equals در C# چیست؟
زمانی که از عملگر == برای مقایسه اشیا استفاده میشود، مخصوصاً زمانی که طرف چپ مقایسه از نوع object باشد، این عملگر به System.Object.ReferenceEquals ارجاع میدهد. این بدان معناست که == در واقع به مقایسه آدرسهای حافظه (reference) میپردازد، نه محتویات ...
رای
0
mohsen•1 هفته قبل
چگونه در سی شارپ ورودی متنی ای بسازیم که فقط اعداد را قبول کند؟
یکی از سادهترین روشها برای درست کردن ورودی متنی (TextBox) که فقط ورودی عددی بگیرد استفاده از کنترل NumericUpDown است. این کنترل به طور خودکار فیلتر کردن ورودیها را انجام میدهد و همچنین به کاربر اجازه میدهد که با استفاده از دکمههای بالا و پایین در ...
رای
0
mohsen•1 هفته قبل
مشکل تعیین نوع 'async' برای متد 'Main' اپلیکیشن کنسول در سی شارپ
در ویژوال استودیو 2012، کامپایلر اجازه استفاده از متد async Main را نمی دهد. در نسخه 2010 ویژوال استودیو این کار مجاز بود اما استفاده از آن توصیه نشده بود. در ویژوال استودیو 2017 آپدیت 3 (15.3) امکان استفاده از متد async Main همراه سی شارپ نسخه 7 اضافه ...
رای
0
mohsen•1 هفته قبل
نحوه انجام Impersonation در .NET
اصطلاح Impersonation به معنای اجرای کد تحت یک حساب کاربری خاص است.
استفاده از WindowsIdentity.RunImpersonated
بهترین راه برای Impersonation در نسخههای جدید استفاده از متد WindowsIdentity.RunImpersonated است. این متد یک handle بعنوان توکن کاربر و یک ...
رای
0
mohsen•2 هفته قبل
چگونه میتوان یک AuthorizeAttribute سفارشی در ASP.NET Core ایجاد کرد؟
در حال حاضر، برای ایجاد یک AuthorizeAttribute سفارشی در ASP.NET Core، روشهای جدیدی نسبت به نسخههای قبلی این فریمورک وجود دارد.
ابتدا باید از [Authorize] برای مشخص کردن سیاستهای خود استفاده کنید. مثلاً:
[Authorize(Policy = "YouNeedToBe18ToDoThis")]
این ...
رای
0
mohsen•2 هفته قبل
گنجاندن DLLها در فایل اجرایی کامپایل شده در C#
در بسیاری از مواقع، برای ساده سازی توزیع و نصب برنامه به دنبال این هستیم که DLLها و وابستگی ها را در یک فایل اجرایی C# جا دهیم و در نتیجه فقط یک فایل برای توزیع داشته باشیم.
یکی از بهترین و آسانترین روشها برای گنجاندن DLLها در فایل اجرایی، استفاده از ...
رای
0
mohsen•2 هفته قبل
چرا در سی شارپ هنگامی که متد Equals را override میکنیم باید متد GetHashCode را نیز اورراید کنیم؟
در برنامهنویسی شی گرا، روشهای Equals و GetHashCode به طور گستردهای برای مقایسه اشیا و استفاده از آنها در ساختارهای دادهای مانند Dictionary و HashSet مورد استفاده قرار میگیرند. هنگامی که شما متد Equals را override میکنید، شما در واقع یک منطق خاص ...
رای
0
mohsen•2 هفته قبل
بررسی حساسیت به حروف بزرگ و کوچک در متد Contains در سی شارپ
متد Contains برای رشته ها در دات نت با ورژن های قدیمی تر از .net core 2 و .net 5 به طور پیشفرض حساس به حروف بزرگ و کوچک است، برای همین این متد بدون در نظر گرفتن کوچکی یا بزرگی حروف کار نمی کند.
یک راه برای پیاده کردن روش مشابه، استفاده از متد IndexOf ...
رای
0
mohsen•2 هفته قبل
روش انجام کپی عمیق از یک شی در .NET
استفاده از BinaryFormatter
یکی از روشهای محبوب برای کپی عمیق استفاده از BinaryFormatter است. به طور خاص، میتوانید یک متد عمومی به شکل زیر ایجاد کنید:
public static T DeepClone<T>(this T obj)
{
using (var ms = new MemoryStream())
{
var formatter = new ...
رای
0
mohsen•2 هفته قبل
نحوه فراخوانی متدهای غیر همزمان از متدهای همزمان در C#
در زبان C#، متدهای غیرهمزمان (async) به گونهای طراحی شدهاند که بتوانند بدون مسدود کردن ترد (Thread) اصلی، عملیاتهای زمان بر را انجام دهند. اما در برخی موارد، ممکن است نیاز داشته باشید که یک متد غیر همزمان را از یک متد همزمان فراخوانی کنید. این موضوع ...
رای
0