#PersianDateTime
#CSharp
🔹 ساختار تاریخ شمسی با متد های تبدیل به تاریخ میلادی و یا هجری
🔸 متدهای مختلف برای بدست آوردن رشته های مختلف تاریخ شمسی با فرمت های متفاوت و اعداد فارسی
🔹 پشتیبانی از سال کبیسه
🔸 شبیه سازی کامل ساختار DateTime
.NetFramework 4.5
نصب پکیج :
#CSharp
🔹 ساختار تاریخ شمسی با متد های تبدیل به تاریخ میلادی و یا هجری
🔸 متدهای مختلف برای بدست آوردن رشته های مختلف تاریخ شمسی با فرمت های متفاوت و اعداد فارسی
🔹 پشتیبانی از سال کبیسه
🔸 شبیه سازی کامل ساختار DateTime
.NetFramework 4.5
نصب پکیج :
Install-Package ABluePersianDateTime -Version 1.0.3
dotnet add package ABluePersianDateTime --version 1.0.3
paket add ABluePersianDateTime --version 1.0.3
@fullStackDevsForwarded from Web Devs
#PersianDateTime
#CSharp
🔹 ساختار تاریخ شمسی با متد های تبدیل به تاریخ میلادی و یا هجری
🔸 متدهای مختلف برای بدست آوردن رشته های مختلف تاریخ شمسی با فرمت های متفاوت و اعداد فارسی
🔹 پشتیبانی از سال کبیسه
🔸 شبیه سازی کامل ساختار DateTime
.NetFramework 4.5
نصب پکیج :
#CSharp
🔹 ساختار تاریخ شمسی با متد های تبدیل به تاریخ میلادی و یا هجری
🔸 متدهای مختلف برای بدست آوردن رشته های مختلف تاریخ شمسی با فرمت های متفاوت و اعداد فارسی
🔹 پشتیبانی از سال کبیسه
🔸 شبیه سازی کامل ساختار DateTime
.NetFramework 4.5
نصب پکیج :
Install-Package ABluePersianDateTime -Version 1.0.3
dotnet add package ABluePersianDateTime --version 1.0.3
paket add ABluePersianDateTime --version 1.0.3
@fullStackDevs#PersianDateTime
#CSharp
🔹 ساختار تاریخ شمسی با متد های تبدیل به تاریخ میلادی و یا هجری
🔸 متدهای مختلف برای بدست آوردن رشته های مختلف تاریخ شمسی با فرمت های متفاوت و اعداد فارسی
🔹 پشتیبانی از سال کبیسه
🔸 شبیه سازی کامل ساختار DateTime
.NetFramework 4.5
نصب پکیج :
#CSharp
🔹 ساختار تاریخ شمسی با متد های تبدیل به تاریخ میلادی و یا هجری
🔸 متدهای مختلف برای بدست آوردن رشته های مختلف تاریخ شمسی با فرمت های متفاوت و اعداد فارسی
🔹 پشتیبانی از سال کبیسه
🔸 شبیه سازی کامل ساختار DateTime
.NetFramework 4.5
نصب پکیج :
Install-Package ABluePersianDateTime -Version 1.0.5@fullStackDevs
dotnet add package ABluePersianDateTime --version 1.0.5
paket add ABluePersianDateTime --version 1.0.5
Web Devs
#PersianDateTime #CSharp 🔹 ساختار تاریخ شمسی با متد های تبدیل به تاریخ میلادی و یا هجری 🔸 متدهای مختلف برای بدست آوردن رشته های مختلف تاریخ شمسی با فرمت های متفاوت و اعداد فارسی 🔹 پشتیبانی از سال کبیسه 🔸 شبیه سازی کامل ساختار DateTime .NetFramework 4.5 نصب…
#PersianDateTime
#CSharp
🔹 ساختار تاریخ شمسی با متد های تبدیل به تاریخ میلادی و یا هجری
✔️ اضافه کردن اپراتور منها برای بدست آوردن تفاضل دو تاریخ
مثال:
🔳 در پست بعدی تو این هفته compatible با NetCore هم توی ناگت برای استفاده قرار داده میشود.
نصب پکیج :
#CSharp
🔹 ساختار تاریخ شمسی با متد های تبدیل به تاریخ میلادی و یا هجری
✔️ اضافه کردن اپراتور منها برای بدست آوردن تفاضل دو تاریخ
مثال:
PersianDateTime datetime1 = new PersianDateTime(_dateTime);.NetFramework 4.5
PersianDateTime datetime2 = new PersianDateTime(_dateTime.AddDays(-10));
var timeSpan = datetime1 - datetime2;
🔳 در پست بعدی تو این هفته compatible با NetCore هم توی ناگت برای استفاده قرار داده میشود.
نصب پکیج :
Install-Package ABluePersianDateTime -Version 1.0.7@fullStackDevs
dotnet add package ABluePersianDateTime --version 1.0.7
paket add ABluePersianDateTime --version 1.0.7
Web Devs
#PersianDateTime #CSharp 🔹 ساختار تاریخ شمسی با متد های تبدیل به تاریخ میلادی و یا هجری 🔸 متدهای مختلف برای بدست آوردن رشته های مختلف تاریخ شمسی با فرمت های متفاوت و اعداد فارسی 🔹 پشتیبانی از سال کبیسه 🔸 شبیه سازی کامل ساختار DateTime .NetFramework 4.5 نصب…
#PersianDateTime
#CSharp
#NetStandard2.0
🔹 ساختار تاریخ شمسی با متد های تبدیل به تاریخ میلادی و یا هجری
.NetStandard 2.0
🔳 It is supported in .NET Core 2.0, in the .NET Framework 4.6.1 and later versions
نصب پکیج :
#CSharp
#NetStandard2.0
🔹 ساختار تاریخ شمسی با متد های تبدیل به تاریخ میلادی و یا هجری
.NetStandard 2.0
🔳 It is supported in .NET Core 2.0, in the .NET Framework 4.6.1 and later versions
نصب پکیج :
Install-Package ABluePersianDateTime -Version 2.0.2@fullStackDevs
dotnet add package ABluePersianDateTime --version 2.0.2
paket add ABluePersianDateTime --version 2.0.2
Anonymous Quiz
62%
true
38%
false
#Indexer
#Params
#cSharp
🔰Indexer & Params IN C#
🔸ایندکسر ها در سی شارپ این اجازه را به اشیاء کلاس ها و struct ها میدهند تا مانند آرایه ها index گذاری شوند .
🔹از کاربردهای مهمی که میتوان از indexer ها استفاده کرد. encapsulate کردن کالکشن و یا یک آرایه داخلی در درون یک شء میباشد.
🔰Prams
🔸در c# هنگامی که پارامتر یک متد تعداد نامشخصی آرگومان (از یک نوع تایپ) دارد از کلمه کلیدی params برای تعریف آن پارامتر استفاده میکنیم. کامپایلر با params مانند یک temporary array برخورد میکند و از آن برای دریافت پارامترهای پاس داده شده
توسط caller استفاده میکند.
❇️ در ادامه تکنیکی را معرفی میکنیم که به عنوان یک C# Developer خوب است بدانید.
🔹Indexers can use params
🔸همه ما روش معقول و معمول استفاده از ایندکسر ها را میدانیم و مثال های فراوانی که از کاربردهای آن ارائه شده قالبا و تمام به یک شکل میباشد
در این پست، کاربردی جالب و ترکیبی از ایندکسر و params را معرفی میکنیم که امیدواریم مفید واقع شود.
▪️تعریف یک ایندکسر :
و ایندکسر خود را بدین شکل بنویسیم
🔸همچنین میتوانید در یک کلاس از هر دو شکل تعریف ایندکسر در کنار هم استفاده کنید و بسته به تعداد arg های پاس داده شده خروجی متفاوتی دریافت میکنید.
مشاهده نمونه سورس.(حتما بررسی کنید😉)
@fullStackDevs
#Params
#cSharp
🔰Indexer & Params IN C#
🔸ایندکسر ها در سی شارپ این اجازه را به اشیاء کلاس ها و struct ها میدهند تا مانند آرایه ها index گذاری شوند .
🔹از کاربردهای مهمی که میتوان از indexer ها استفاده کرد. encapsulate کردن کالکشن و یا یک آرایه داخلی در درون یک شء میباشد.
🔰Prams
🔸در c# هنگامی که پارامتر یک متد تعداد نامشخصی آرگومان (از یک نوع تایپ) دارد از کلمه کلیدی params برای تعریف آن پارامتر استفاده میکنیم. کامپایلر با params مانند یک temporary array برخورد میکند و از آن برای دریافت پارامترهای پاس داده شده
توسط caller استفاده میکند.
❇️ در ادامه تکنیکی را معرفی میکنیم که به عنوان یک C# Developer خوب است بدانید.
🔹Indexers can use params
🔸همه ما روش معقول و معمول استفاده از ایندکسر ها را میدانیم و مثال های فراوانی که از کاربردهای آن ارائه شده قالبا و تمام به یک شکل میباشد
در این پست، کاربردی جالب و ترکیبی از ایندکسر و params را معرفی میکنیم که امیدواریم مفید واقع شود.
▪️تعریف یک ایندکسر :
public string this[string key] {
get { return internalDictionary[key]; }
}
🔹اما ایا میدانید می توانیم از params هم در هنگام تعریف ایندکسر استفاده کنیم ؟و ایندکسر خود را بدین شکل بنویسیم
public IEnumerable<string> this[params string[] keys] {
get { return keys.Select(key => internalDictionary[key]).AsEnumerable(); }
}
🔸همچنین میتوانید در یک کلاس از هر دو شکل تعریف ایندکسر در کنار هم استفاده کنید و بسته به تعداد arg های پاس داده شده خروجی متفاوتی دریافت میکنید.
مشاهده نمونه سورس.(حتما بررسی کنید😉)
@fullStackDevs
GitHub
fullStackDevsGroup/IndexerAndParams
Contribute to fullStackDevsGroup/IndexerAndParams development by creating an account on GitHub.
#csharp
#Enums
❇️در این پست مورد جالبی را در مورد Enum ها برررسی میکنیم.
🔸آیا می دانستید که میتوانیم برای Enum ها Extension method بنویسیم؟
▫️پاسخ سوال واضح است. مشخصا بله .
🔹اما اگر بخواهیم فقط برای یک enum خاص یک Extension method بنویسیم و در سایر Enum ها قابل دسترس نباشد چه ⁉️
❇️ در این پست به بررسی این موضوع میپردازیم و در نهایت پاسخ سوال را ارائه می کنیم.
🔰همانطور که میدانید Extension متد ها راهی برای نوشتن و افزودن متدهای جدید به یک type از پیش ساخته شده، یا یک type سفارشی، بدون تغییر
در آن type است.
درواقع enum ها نوع خاصی از کلاس ها هستند که گروهی از constant ها را نمایش میدهند. پس دور از انتظار نیست که به این صورت برایشان Extention method بنویسیم.
@fullStackDevs
#Enums
❇️در این پست مورد جالبی را در مورد Enum ها برررسی میکنیم.
🔸آیا می دانستید که میتوانیم برای Enum ها Extension method بنویسیم؟
▫️پاسخ سوال واضح است. مشخصا بله .
🔹اما اگر بخواهیم فقط برای یک enum خاص یک Extension method بنویسیم و در سایر Enum ها قابل دسترس نباشد چه ⁉️
❇️ در این پست به بررسی این موضوع میپردازیم و در نهایت پاسخ سوال را ارائه می کنیم.
🔰همانطور که میدانید Extension متد ها راهی برای نوشتن و افزودن متدهای جدید به یک type از پیش ساخته شده، یا یک type سفارشی، بدون تغییر
در آن type است.
درواقع enum ها نوع خاصی از کلاس ها هستند که گروهی از constant ها را نمایش میدهند. پس دور از انتظار نیست که به این صورت برایشان Extention method بنویسیم.
enum Duration { Day, Week, Month };
static class DurationExtensions {
public static DateTime From(this Duration duration, DateTime dateTime) {
switch(duration) {
case Day: return dateTime.AddDays(1);
case Week: return dateTime.AddDays(7);
case Month: return dateTime.AddMonths(1);
default: throw new ArgumentOutOfRangeException("duration");
}
}
}
▪️و بدین صورت متد From فقط برای enum Duration قابل دسترسی خواهد بود.@fullStackDevs
Forwarded from Full Stack Amigo (HESAM KASHEFI)
Advanced C# - Understand the implementation details of readonly and how it affects performance of your C# applications.
🔴 Don't forget to like, Share and Subscribe!
#csharp
https://youtu.be/6T5pE1pPBd8
🔴 Don't forget to like, Share and Subscribe!
#csharp
https://youtu.be/6T5pE1pPBd8
YouTube
Does readonly affect Performance ?! - Avoid Defensive Copies - Advanced C#
Does readonly affect performance of your C# applications?
In this video we learn about compiler details of readonly.
😀If you have any question ask me in the comments
🔴 SUBSCRIBE 🔥 using the following link
https://bit.ly/39PJJ8Z
🔴Don't forget to like and…
In this video we learn about compiler details of readonly.
😀If you have any question ask me in the comments
🔴 SUBSCRIBE 🔥 using the following link
https://bit.ly/39PJJ8Z
🔴Don't forget to like and…
Forwarded from Full Stack Amigo (HESAM KASHEFI)
YouTube
Indecies and Ranges in C#
What is Index and What is Range in C#?
How to slice arrays in C#
How to index from end of arrays?
Hot to substring with index and range in C#?
😀 QUESTIONS? ▶ COMMENT
🔴 SUBSCRIBE: https://bit.ly/39PJJ8Z
🔴 LIKE SHARE SUBSCRIBE
▶ SOCIAL MEDIA:
Instagram:…
How to slice arrays in C#
How to index from end of arrays?
Hot to substring with index and range in C#?
😀 QUESTIONS? ▶ COMMENT
🔴 SUBSCRIBE: https://bit.ly/39PJJ8Z
🔴 LIKE SHARE SUBSCRIBE
▶ SOCIAL MEDIA:
Instagram:…
👍1
#csharp
#dotnet
#comparison
روش های بد مقایسه رشته ها در سی شارپ
تا به حال اکثرا از ToLowerیا ToUpper برای مقایسه رشته های غیر حساس به حروف بزرگ استفاده می کردیم .
اما این بهترین راه برای انجام آن نیست.
استفاده از string.Equals این مقایسه از سرعت عملکرد بهتری برخوردار است (در واقع به حروف کوچک یا بزرگ رشته ها علاقه ای نداریم).
همانطور که در تصویر می بینیم.
پس برای مقایسه دو رشته string بهتره از String.Equals استفاده کنیم
@fullStackDevs
#dotnet
#comparison
روش های بد مقایسه رشته ها در سی شارپ
تا به حال اکثرا از ToLowerیا ToUpper برای مقایسه رشته های غیر حساس به حروف بزرگ استفاده می کردیم .
اما این بهترین راه برای انجام آن نیست.
استفاده از string.Equals این مقایسه از سرعت عملکرد بهتری برخوردار است (در واقع به حروف کوچک یا بزرگ رشته ها علاقه ای نداریم).
همانطور که در تصویر می بینیم.
پس برای مقایسه دو رشته string بهتره از String.Equals استفاده کنیم
@fullStackDevs
👍11❤1
IMG_0165.JPG
2.2 MB
#csharp #visualstudio #csharp10 #aspdotnet #aspcore #dotnet
6 Amazing feature and improvement in C# 10:
📌 File-scoped namespace
📌 Record structs
📌 Constant interpolated strings
📌 Extended property patterns
📌 Global using directive
📌 Assignment and declaration in same deconstruction
❗️C# 10 is supported on .NET 6 .
@fullStackDevs
6 Amazing feature and improvement in C# 10:
📌 File-scoped namespace
📌 Record structs
📌 Constant interpolated strings
📌 Extended property patterns
📌 Global using directive
📌 Assignment and declaration in same deconstruction
❗️C# 10 is supported on .NET 6 .
@fullStackDevs
👍5
#feature
#cSharp
یکی از ویژگی های که از C# 7.0 معرفی شد استفاده از خط زیر (underscore) ( _ ) به عنوان جداکننده رقم شناخته می شود. هدف این است که خوانایی بهتر و آسانتر را بخصوص در اعداد بزرگ فراهم کنیم.
📌 اطلاعات بیشتر
@fullStackDevs
#cSharp
یکی از ویژگی های که از C# 7.0 معرفی شد استفاده از خط زیر (underscore) ( _ ) به عنوان جداکننده رقم شناخته می شود. هدف این است که خوانایی بهتر و آسانتر را بخصوص در اعداد بزرگ فراهم کنیم.
📌 اطلاعات بیشتر
@fullStackDevs
❤9👍6
#Algorithm #Sliding_window
#SlidingWindow #CSharp
🧩 الگوریتم Sliding Window:
الگوریتم Sliding Window یکی از تکنیکهای مهم برای حل مسائل آرایهها و رشتهها به طور بهینه است. این روش با استفاده از دو نشانگر برای بررسی بخشهای مختلف داده، به سرعت جواب رو پیدا میکنه.
🔑 چطور کار میکنه؟
- دو نشانگر (`left` و `right`) برای نمایش پنجره (قسمتی از داده) استفاده میکنیم.
- نشانگر راست حرکت میکنه و هر بار یک کاراکتر یا مقدار جدید بررسی میشه.
- وقتی که شرایط خاصی مثل وجود مقدار تکراری یا رسیدن به اندازهای خاص محقق بشه، نشانگر چپ حرکت میکنه تا پنجره رو کوچکتر کنیم.
مزیت اصلی: زمان اجرا به O(n) کاهش مییابد که نسبت به روشهای سنتی با O(n²) بسیار سریعتر است.
💡 مثال: طول بزرگترین زیررشته بدون کاراکتر تکراری
ورودی: "abcabcbb"
خروجی: 3 (زیربرنامه "abc" بزرگترین زیررشته بدون تکرار است)
کاربردها:
- پیدا کردن طول بزرگترین زیررشته یا زیرآرایه
- جستجوی زیرمجموعهها با ویژگیهای خاص
- مسائل مربوط به جمع یا مقایسه زیرآرایهها و زیررشتهها
این الگوریتم خیلی مفیده برای حل مسائل بهینه در آرایهها و رشتهها، خصوصاً وقتی نیاز به
بررسی بخشهای مختلف داریم!
@fullStackDevs
#SlidingWindow #CSharp
🧩 الگوریتم Sliding Window:
الگوریتم Sliding Window یکی از تکنیکهای مهم برای حل مسائل آرایهها و رشتهها به طور بهینه است. این روش با استفاده از دو نشانگر برای بررسی بخشهای مختلف داده، به سرعت جواب رو پیدا میکنه.
🔑 چطور کار میکنه؟
- دو نشانگر (`left` و `right`) برای نمایش پنجره (قسمتی از داده) استفاده میکنیم.
- نشانگر راست حرکت میکنه و هر بار یک کاراکتر یا مقدار جدید بررسی میشه.
- وقتی که شرایط خاصی مثل وجود مقدار تکراری یا رسیدن به اندازهای خاص محقق بشه، نشانگر چپ حرکت میکنه تا پنجره رو کوچکتر کنیم.
مزیت اصلی: زمان اجرا به O(n) کاهش مییابد که نسبت به روشهای سنتی با O(n²) بسیار سریعتر است.
💡 مثال: طول بزرگترین زیررشته بدون کاراکتر تکراری
ورودی: "abcabcbb"
خروجی: 3 (زیربرنامه "abc" بزرگترین زیررشته بدون تکرار است)
using System;
using System.Collections.Generic;
class Solution {
public int LengthOfLongestSubstring(string s) {
HashSet<char> set = new HashSet<char>();
int left = 0, maxLength = 0;
for (int right = 0; right < s.Length; right++) {
while (set.Contains(s[right])) {
set.Remove(s[left]);
left++;
}
set.Add(s[right]);
maxLength = Math.Max(maxLength, right - left + 1);
}
return maxLength;
}
}
کاربردها:
- پیدا کردن طول بزرگترین زیررشته یا زیرآرایه
- جستجوی زیرمجموعهها با ویژگیهای خاص
- مسائل مربوط به جمع یا مقایسه زیرآرایهها و زیررشتهها
این الگوریتم خیلی مفیده برای حل مسائل بهینه در آرایهها و رشتهها، خصوصاً وقتی نیاز به
بررسی بخشهای مختلف داریم!
@fullStackDevs
👍5