Lesson ৭ মিনিট পড়া

ভ্যারিয়েবল এবং ডেটা টাইপ (Variables & Data Types)

আপনার ডেটাগুলোকে একটি নাম এবং ঠিকানা দিন

ভ্যারিয়েবল আসলে কী? (What Is a Variable?)

একটি ভ্যারিয়েবলকে (variable) আপনার রান্নাঘরের একটি লেবেল লাগানো বয়ামের (labeled jar) মতো ভাবতে পারেন। আপনি এর গায়ে একটি লেবেল লাগান (ভ্যারিয়েবলের নাম), এর ভেতরে কী ধরনের জিনিস রাখা হবে তা ঠিক করেন (ডেটা টাইপ), এবং তারপর তার ভেতর কিছু একটা রাখেন (ভ্যারিয়েবলের ভ্যালু বা মান)। সি শার্পে (C#) প্রতিটি বয়ামের ভেতরে কী রাখা যাবে সে বিষয়ে খুব কড়াকড়ি নিয়ম রয়েছে — আপনি "বিস্কুট (cookies)" লেখা লেবেল লাগানো কোনো বয়ামে স্যুপ (soup) ঢালতে পারবেন না।

সি শার্প (C#) হলো একটি স্ট্যাটিকালি টাইপড (statically typed) ভাষা, যার মানে হলো বয়ামে কিছু ভরার আগেই আপনাকে বয়ামের ধরন (type) বেছে নিতে হবে। এই পদ্ধতির সুবিধা হলো এটি খুব দ্রুতই ভুলগুলো ধরতে পারে — যেমন ধরুন, আপনি যদি কারও নামের সাথে কোনো গাণিতিক হিসাব বা অঙ্ক করার চেষ্টা করেন।

ভ্যারিয়েবল ডিক্লেয়ার করা (Declaring Variables)

int age = 10;
double height = 4.5;
string name = "Laboni";
bool isAwesome = true;
char grade = 'A';
Console.WriteLine($"{name} is {age} years old, {height} ft tall.");
Console.WriteLine($"Awesome? {isAwesome}. Grade: {grade}");
Output
Laboni is 10 years old, 4.5 ft tall.
Awesome? True. Grade: A

বহুল ব্যবহৃত টাইপসমূহ (The Common Types)

এখানে এমন কিছু টাইপের কথা বলা হলো, যেগুলো আপনার প্রতিদিন কাজে লাগবে:

  • int — পূর্ণ সংখ্যা বা whole numbers যেমন 42 অথবা -7। এটি মোটামুটি ±২ বিলিয়ন পর্যন্ত সংখ্যা ধারণ করতে পারে।
  • long — যখন অঙ্কের আকার এতোটাই বড় হয় যে তা int দিয়ে ধারণ করা সম্ভব হয় না। যেমন দেশের জাতীয় ঋণের হিসাব।
  • double — দশমিক সংখ্যা বা decimal numbers যেমন 3.14। বিজ্ঞানের বিভিন্ন হিসাবের ক্ষেত্রে এগুলো দারুণ কাজ করে, তবে অনেক সময় রাউন্ডিংয়ের (rounding) ছোটখাটো ত্রুটি দেখা দিতে পারে।
  • decimalটাকাপয়সার (money) হিসাব রাখার জন্য ব্যবহৃত দশমিক সংখ্যা। এটি তুলনামূলকভাবে কিছুটা ধীরগতির হলেও অত্যন্ত নিখুঁত। তাই টাকার হিসাবের জন্য সব সময় এটিই ব্যবহার করবেন!
  • string — যেকোনো লেখা বা টেক্সট; এগুলোকে সব সময় ডাবল কোটেশনের (double quotes) ভেতর রাখতে হয়, যেমন: "hello"
  • bool — এর মান কেবল true (সত্য) অথবা false (মিথ্যা) হতে পারে। এটি অনেকটা লাইটের সুইচের মতো কাজ করে।
  • char — সিঙ্গেল কোটেশনের (single quotes) ভেতর রাখা একটি মাত্র অক্ষর বা ক্যারেক্টার, যেমন: 'Z'

তাছাড়াও, চাইলে var ব্যবহার করা যেতে পারে — এটি সি শার্পকে (C#) আপনার হয়ে টাইপটি বুঝে নেওয়ার সুযোগ দেয়। তবে এটি কোনো অলসতা নয়, বরং কোড ছোট করে লেখার একটি পদ্ধতি মাত্র। কম্পাইল টাইমে (compile time) টাইপটি ঠিকই লক (lock) হয়ে যায়।

var, const এবং বড় সংখ্যাগুলো (var, const, and Bigger Numbers)

var score = 99; // C# knows this is int
var pi = 3.14159; // C# knows this is double
var greeting = "Hey!"; // C# knows this is string
const double TAX_RATE = 0.08; // const = cannot change, ever
decimal price = 19.99m; // 'm' suffix = decimal literal
long worldPopulation = 8_000_000_000L; // 'L' = long, '_' for readability
Console.WriteLine($"Score: {score}, Pi: {pi}");
Console.WriteLine($"Tax rate: {TAX_RATE}");
Console.WriteLine($"Price: {price:C}"); // C = currency format
Console.WriteLine($"People on Earth: {worldPopulation:N0}");
Output
Score: 99, Pi: 3.14159
Tax rate: 0.08
Price: $19.99
People on Earth: 8,000,000,000

টাইপ কাস্টিং (Type Casting) — বয়ামের ধরন পরিবর্তন করা

মাঝেমধ্যে আপনাকে হয়তো এক আকারের বয়াম থেকে ভিন্ন আকারের আরেকটি বয়ামে ডেটা ঢালতে বা স্থানান্তর করতে হতে পারে। সি শার্পে (C#) এটি করার দুটি উপায় আছে:

  • ইমপ্লিসিট কাস্টিং (Implicit casting) — এটি নিজে থেকেই বা স্বয়ংক্রিয়ভাবে কাজ করে এবং এটি বেশ নিরাপদ। যখন ছোট বয়াম থেকে বড় বয়ামে রূপান্তর করা হয়: intlongdouble
  • এক্সপ্লিসিট কাস্টিং (Explicit casting) — এটি আপনাকে (type) ব্যবহার করে জোড়পূর্বক করতে হয়। বড় বয়াম থেকে ছোট বয়ামে রূপান্তর করলে ডেটা হারিয়ে যাওয়ার সম্ভাবনা থাকে, তাই আপনাকে মূলত বুঝিয়ে দিতে হয় যে "আমি জানি আমি কী করছি।"

তাছাড়া, স্ট্রিংকে (string) সংখ্যায় রূপান্তর করার জন্য আপনি চাইলে Convert.ToInt32(), int.Parse(), অথবা int.TryParse() ব্যবহার করতে পারেন।

ব্যাবহারিক ক্ষেত্রে টাইপ কাস্টিং (Type Casting in Action)

// Implicit: small → big (safe, automatic)
int cookies = 42;
double cookiesExact = cookies; // 42 → 42.0
Console.WriteLine(cookiesExact);
// Explicit: big → small (you might lose data!)
double temperature = 98.6;
int rounded = (int)temperature; // chops off .6
Console.WriteLine($"Rounded: {rounded}");
// String → number
string input = "123";
int number = int.Parse(input);
Console.WriteLine(number + 10);
// Safe parsing (won't crash if input is garbage)
bool success = int.TryParse("oops", out int result);
Console.WriteLine($"Parsed? {success}, Value: {result}");
Output
42
Rounded: 98
133
Parsed? False, Value: 0
Note: 🏦 টাকার নিয়ম: টাকাপয়সার হিসাব রাখার জন্য ভুলেও কখনো double ব্যবহার করবেন না! এর পরিবর্তে decimal ব্যবহার করুন। double ব্যবহার করলে টাকাপয়সার হিসাবে অনেক অদ্ভুত ফলাফল আসতে পারে, যেমন $10.00 বদলে গিয়ে হয়তো $9.999999999 হয়ে যেতে পারে। decimal টাইপটিকে তৈরিই করা হয়েছে ডলার আর সেন্টের (বা টাকা ও পয়সার) নিখুঁত হিসাব রাখার জন্য।
চ্যালেঞ্জ

ছোট কুইজ

এর ফলাফল কী হবে: (int)7.9?
Why Learn C#?Operators & Expressions