🪄 جادوی اعداد در #C :
نوشتن اعداد مثل یک حرفهای (Literals, Suffixes & More)
فکر میکنی نوشتن 1000 تو سیشارپ همیشه به معنی int هست؟ یا چطور به کامپایلر بفهمونیم منظورمون یه عدد decimalئه نه double؟
اینا جزئیات و "فوت کوزهگری" هستن که فرق کدنویس معمولی و حرفهای رو مشخص میکنه. بزن بریم این ترفندها رو یاد بگیریم!
👓 خوانایی کد با لیترالهای حرفهای
نوشتن اعداد، فقط مقدارشون نیست؛ خوانایی هم مهمه!
جداکننده ارقام (_): برای اعداد بزرگ، میتونید از آندرلاین برای جدا کردن ارقام و خوانایی بیشتر استفاده کنید. کامپایلر این آندرلاینها رو نادیده میگیره.
int bigNumber = 1_000_000; // خیلی خواناتر از 1000000
var binaryData = 0b1010_1011_1100;
مبنای شانزده (Hexadecimal): با پیشوند 0x، میتونید اعداد رو در مبنای ۱۶ بنویسید. این برای کار با رنگها، فلگها و عملیات سطح پایین خیلی کاربردیه.
int redColor = 0xFF0000;
مبنای دو (Binary): با پیشوند 0b، میتونید مستقیماً عدد رو به صورت باینری وارد کنید.
var filePermissions = 0b110_110_100; // rwx-wx--
🏷 پسوندها (Suffixes): تعیین تکلیف برای کامپایلر!
بعضی وقتا کامپایلر خودش نوع عدد رو حدس میزنه (که بهش میگیم Type Inference)، ولی گاهی ما باید حرف آخر رو بزنیم! اینجاست که پسوندها وارد میشن.
مهمترینهاشون اینان:
F برای float
اگه این پسوند رو نذارید، کامپایلر عدد اعشاری شما رو double در نظر میگیره و کدتون خطا میده چون double به راحتی به float تبدیل نمیشه.
// float f = 4.5; // ❌ کامپایل نمیشه!
float f = 4.5F; // ✅ درسته!
M برای decimal
این یکی فوقالعاده مهمه. برای تمام محاسبات مالی و پولی، باید از decimal استفاده کنید و برای مقداردهی بهش، حتماً از پسوند M استفاده کنید.
// decimal balance = 100.99; // ❌ کامپایل نمیشه!
decimal balance = 100.99M; // ✅ درسته!
L برای long و U برای unsigned
این پسوندها کمتر ضروری هستن، چون معمولاً کامپایلر میتونه نوعشون رو حدس بزنه یا به صورت خودکار تبدیل کنه. ولی خوبه که بدونید وجود دارن.
long bigNum = 9_000_000_000L; // با L بهش میگیم این یه عدد خیلی بزرگه
❓ شما چطور اعداد رو مینویسید؟
اینا فقط یه سری قاعده خشک و خالی نیستن، ابزارهایی برای نوشتن کد دقیقتر و خواناتر هستن.
🔖 هشتگها :
#CSharp
#CodingTips
#Literals