সি শার্প (C#) প্রোগ্রামিংয়ে ভেরিয়েবল এবং ডেটা টাইপস গুরুত্বপূর্ণ ভূমিকা পালন করে। ভেরিয়েবল হলো এমন এক স্থান যা ডেটা সংরক্ষণ করতে ব্যবহৃত হয়, এবং ডেটা টাইপ নির্ধারণ করে সেই ভেরিয়েবলে কী ধরনের ডেটা সংরক্ষণ করা যাবে।
ভেরিয়েবল (Variable)
ভেরিয়েবল হলো মেমোরি স্পেসে একটি নামকরণকৃত স্থান, যেখানে বিভিন্ন ধরনের ডেটা সংরক্ষণ করা যায়। ভেরিয়েবল ডিক্লেয়ার করার সময় এটি একটি নির্দিষ্ট ডেটা টাইপ দিয়ে শুরু করতে হয়। C# এ ভেরিয়েবলের নামকরণের কিছু নিয়ম রয়েছে:
- ভেরিয়েবলের নাম অবশ্যই একটি অক্ষর বা
_(আন্ডারস্কোর) দিয়ে শুরু করতে হবে। - ভেরিয়েবলের নাম কেস সেনসিটিভ, অর্থাৎ
ageএবংAgeদুটি আলাদা ভেরিয়েবল। - নাম অবশ্যই অর্থবহ হতে হবে, যেন ভেরিয়েবলের কাজ বোঝা যায়।
int age = 25;
string name = "Alice";
ডেটা টাইপস (Data Types)
সি শার্পে বিভিন্ন ধরনের ডেটা টাইপ রয়েছে, যা ভেরিয়েবল কী ধরনের ডেটা ধারণ করবে তা নির্ধারণ করে। প্রধানত চার ধরনের ডেটা টাইপ ব্যবহৃত হয়:
- প্রিমিটিভ ডেটা টাইপ (Primitive Data Types): মৌলিক ডেটা টাইপ যা সহজ ডেটা ধারণ করতে ব্যবহৃত হয়।
- নন-প্রিমিটিভ ডেটা টাইপ (Non-Primitive Data Types): এটি ব্যবহার করে স্ট্রিং এবং অবজেক্টের মতো ডেটা ধারণ করা হয়।
- ভ্যালু টাইপ (Value Type): ডেটা সরাসরি মেমোরিতে সংরক্ষিত থাকে।
- রেফারেন্স টাইপ (Reference Type): ভেরিয়েবলে ডেটার রেফারেন্স বা ঠিকানা ধারণ করে।
১. প্রিমিটিভ ডেটা টাইপস
i. পূর্ণসংখ্যা টাইপ (Integral Types)
- byte: 0 থেকে 255 পর্যন্ত মান ধারণ করে, সাইজ 1 byte।
- int: পূর্ণসংখ্যা ধারণ করে, সাইজ 4 byte, রেঞ্জ -2,147,483,648 থেকে 2,147,483,647 পর্যন্ত।
- long: বৃহৎ পূর্ণসংখ্যা ধারণ করতে ব্যবহৃত হয়, সাইজ 8 byte।
- sbyte, short, ushort, uint, ইত্যাদি পূর্ণসংখ্যা টাইপ রয়েছে।
byte age = 30;
int population = 100000;
long distance = 9876543210;
ii. ভাসমান বিন্দু টাইপ (Floating-Point Types)
- float: দশমিক মান ধারণ করে, সাইজ 4 byte, সঠিকতা কম।
- double: ভাসমান দশমিক মান ধারণ করে, সাইজ 8 byte, সঠিকতা বেশি।
float height = 5.8f;
double pi = 3.14159265359;
iii. দশমিক টাইপ (Decimal Type)
- decimal: আর্থিক এবং মুদ্রাসংক্রান্ত মানে ব্যবহৃত হয়, সাইজ 16 byte। এটি আরও সঠিক দশমিক মান প্রদান করে।
decimal price = 99.99m;
iv. বুলিয়ান টাইপ (Boolean Type)
- bool: সত্য বা মিথ্যা মান ধারণ করে। সাধারণত শর্ত চেকিংয়ে ব্যবহৃত হয়।
bool isActive = true;
v. চরিত্র টাইপ (Character Type)
- char: একক অক্ষর ধারণ করে। একক উদ্ধৃতি চিহ্নের মধ্যে রাখা হয়।
char grade = 'A';
২. নন-প্রিমিটিভ ডেটা টাইপস
i. স্ট্রিং টাইপ (String Type)
- string: এক বা একাধিক অক্ষরের সমন্বয়ে গঠিত টেক্সট ধারণ করে।
string name = "John Doe";
ii. অবজেক্ট টাইপ (Object Type)
- object: C# এর সবকিছু
objectটাইপ থেকে উত্তরাধিকারী। এতে যে কোনো ধরনের মান ধারণ করা সম্ভব।
object data = 123;
object name = "Alice";
৩. ভ্যালু টাইপ এবং রেফারেন্স টাইপ
- ভ্যালু টাইপ: ভ্যালু টাইপ সরাসরি ডেটা ধারণ করে, যেমন
int,float,double,bool,charইত্যাদি। - রেফারেন্স টাইপ: রেফারেন্স টাইপ শুধুমাত্র ডেটার ঠিকানা ধারণ করে।
string,object, এবং ক্লাস ইত্যাদি রেফারেন্স টাইপের উদাহরণ।
ভেরিয়েবল ডিক্লেয়ারেশন এবং ইনিশিয়ালাইজেশন
একটি ভেরিয়েবল ডিক্লেয়ার করা হলে এটি একটি নির্দিষ্ট ডেটা টাইপের জন্য মেমোরি বরাদ্দ করে এবং ইনিশিয়ালাইজ করলে সেই ডেটা টাইপ অনুযায়ী মান প্রদান করে।
int age; // Variable declaration
age = 25; // Variable initialization
string name = "Alice"; // Declaration and initialization
উদাহরণ প্রোগ্রাম
নিচে একটি প্রোগ্রাম রয়েছে যেখানে বিভিন্ন ধরনের ডেটা টাইপের ব্যবহার দেখানো হয়েছে:
using System;
namespace DataTypesExample
{
class Program
{
static void Main(string[] args)
{
// Integer data type
int age = 25;
// Floating-point data type
double height = 5.9;
// Boolean data type
bool isStudent = true;
// Character data type
char grade = 'A';
// String data type
string name = "Alice";
// Displaying the values
Console.WriteLine("Name: " + name);
Console.WriteLine("Age: " + age);
Console.WriteLine("Height: " + height);
Console.WriteLine("Student: " + isStudent);
Console.WriteLine("Grade: " + grade);
}
}
}
আউটপুট
Name: Alice
Age: 25
Height: 5.9
Student: True
Grade: A
সারসংক্ষেপ
সি শার্পে ভেরিয়েবল এবং ডেটা টাইপ গুরুত্বপূর্ণ ভূমিকা পালন করে, কারণ এগুলো ডেটা সংরক্ষণ এবং পরিচালনায় সহায়ক। ডেটা টাইপ ভিন্ন ভিন্ন ধরনের ডেটা ধারণ করার জন্য ব্যবহৃত হয় এবং ভেরিয়েবল একটি নির্দিষ্ট ডেটা টাইপের ডেটা সংরক্ষণ করে। C# প্রোগ্রামিংয়ে সঠিক ডেটা টাইপ নির্বাচন প্রোগ্রামের কার্যকারিতা এবং নিরাপত্তা নিশ্চিত করতে সহায়ক।
ভেরিয়েবল (Variable) হলো একটি নামকরণকৃত মেমোরি অবস্থান, যা প্রোগ্রামে ডেটা সংরক্ষণ করতে ব্যবহৃত হয়। সহজভাবে বলতে গেলে, ভেরিয়েবল হলো এমন একটি জায়গা যেখানে একটি নির্দিষ্ট ডেটা সংরক্ষণ করা যায় এবং প্রোগ্রাম চলাকালীন সময়ে সেই ডেটা পরিবর্তন বা পুনরায় ব্যবহার করা যায়।
ভেরিয়েবল ডিক্লেয়ারেশন এবং ইনিশিয়ালাইজেশন
সি শার্পে (C#) ভেরিয়েবল ডিক্লেয়ার করার জন্য ডেটা টাইপ এবং ভেরিয়েবল নাম উল্লেখ করতে হয়। ডিক্লেয়ারেশন এর মাধ্যমে মেমোরিতে নির্দিষ্ট স্থান বরাদ্দ করা হয় এবং ইনিশিয়ালাইজেশন এর মাধ্যমে সেই স্থানে ডেটা সংরক্ষণ করা হয়।
ডিক্লেয়ারেশন সিনট্যাক্স:
ডেটা_টাইপ ভেরিয়েবল_নাম;
ইনিশিয়ালাইজেশন সহ ডিক্লেয়ারেশন:
ডেটা_টাইপ ভেরিয়েবল_নাম = মান;
উদাহরণ:
int age = 25; // একটি পূর্ণসংখ্যা ভেরিয়েবল
string name = "Alice"; // একটি স্ট্রিং ভেরিয়েবল
double salary = 5000.75; // একটি দশমিক ভেরিয়েবল
ভেরিয়েবল নামকরণের নিয়ম
ভেরিয়েবল নামের জন্য কিছু নির্দিষ্ট নিয়ম অনুসরণ করতে হয়:
- ভেরিয়েবল নাম অবশ্যই একটি অক্ষর বা আন্ডারস্কোর (
_) দিয়ে শুরু করতে হবে। - নামটি কেস সেনসিটিভ (যেমন,
ageএবংAgeআলাদা)। - নামটি অর্থবহ হওয়া উচিত, যেন বুঝতে সুবিধা হয়।
ভেরিয়েবলের বিভিন্ন ডেটা টাইপ
ভেরিয়েবল বিভিন্ন ডেটা টাইপে হতে পারে। উদাহরণস্বরূপ, কিছু সাধারণ ডেটা টাইপ হলো:
- int: পূর্ণসংখ্যার জন্য (যেমন,
25) - double: দশমিক সংখ্যা (যেমন,
99.99) - string: অক্ষরের সংগ্রহ বা টেক্সট (যেমন,
"Alice") - char: একক অক্ষর (যেমন,
'A') - bool: বুলিয়ান মান (সত্য বা মিথ্যা)
ভেরিয়েবলের ব্যবহার
ভেরিয়েবল প্রোগ্রামে বিভিন্ন ধরনের কাজ সম্পন্ন করতে ব্যবহৃত হয়, যেমন ডেটা সংরক্ষণ, গণনা, এবং শর্ত যাচাই।
উদাহরণ: ভেরিয়েবল ডিক্লেয়ারেশন এবং ব্যবহার
using System;
namespace VariableExample
{
class Program
{
static void Main(string[] args)
{
// ভেরিয়েবল ডিক্লেয়ার এবং ইনিশিয়ালাইজেশন
int age = 25;
string name = "Alice";
double salary = 5000.75;
bool isEmployed = true;
// ভেরিয়েবলের মান ব্যবহার
Console.WriteLine("Name: " + name); // Output: Name: Alice
Console.WriteLine("Age: " + age); // Output: Age: 25
Console.WriteLine("Salary: $" + salary); // Output: Salary: $5000.75
Console.WriteLine("Employed: " + isEmployed); // Output: Employed: True
// ভেরিয়েবলের মান পরিবর্তন
age = 26; // age আপডেট করা হলো
Console.WriteLine("Updated Age: " + age); // Output: Updated Age: 26
}
}
}
প্রোগ্রাম আউটপুট
Name: Alice
Age: 25
Salary: $5000.75
Employed: True
Updated Age: 26
ভেরিয়েবলের ব্যবহার
ভেরিয়েবল সাধারণত বিভিন্ন কাজের জন্য ব্যবহৃত হয়, যেমন:
ডেটা সংরক্ষণ: ভেরিয়েবলে ডেটা সংরক্ষণ করে প্রোগ্রামের বিভিন্ন স্থানে ব্যবহার করা যায়।
গণনা: গণিতের বিভিন্ন অপারেশন করতে ভেরিয়েবলের মান ব্যবহার করা যায়।
int a = 10;
int b = 20;
int sum = a + b;
Console.WriteLine("Sum: " + sum); // Output: Sum: 30
শর্ত যাচাই: প্রোগ্রামের বিভিন্ন স্থানে শর্ত যাচাই করতে ভেরিয়েবল ব্যবহার করা যায়।
int age = 18;
if (age >= 18)
{
Console.WriteLine("Eligible to vote.");
}
else
{
Console.WriteLine("Not eligible to vote.");
}
সারসংক্ষেপ
সি শার্প (C#) এ ভেরিয়েবল হলো মেমোরিতে সংরক্ষিত একটি নির্দিষ্ট স্থানে ডেটা রাখার একটি মাধ্যম, যা প্রোগ্রাম চলাকালীন সময়ে বিভিন্ন কাজের জন্য ব্যবহৃত হয়। ভেরিয়েবল ডিক্লেয়ার, ইনিশিয়ালাইজ এবং ব্যবহার প্রোগ্রামিংয়ের অত্যন্ত গুরুত্বপূর্ণ অংশ এবং এটি ডেটা ম্যানেজমেন্টে সহায়ক।
সি শার্প (C#) প্রোগ্রামিংয়ে বিভিন্ন ধরনের ডেটা টাইপ রয়েছে, যা ভেরিয়েবলে কী ধরনের ডেটা ধারণ করা হবে তা নির্ধারণ করে। এখানে C# এর কিছু মৌলিক ডেটা টাইপ নিয়ে আলোচনা করা হলো:
১. int (Integer)
বর্ণনা: int ডেটা টাইপটি পূর্ণসংখ্যা ধারণ করতে ব্যবহৃত হয়।
সাইজ: 4 byte
রেঞ্জ: -2,147,483,648 থেকে 2,147,483,647
উদাহরণ:
int age = 25;
Console.WriteLine(age); // Output: 25
২. float (Floating-point)
বর্ণনা: float ডেটা টাইপটি দশমিক সংখ্যা ধারণ করে এবং সাধারণত কম সঠিকতার দশমিক মানের জন্য ব্যবহৃত হয়।
সাইজ: 4 byte
রেঞ্জ: প্রায় ±1.5 × 10^−45 থেকে ±3.4 × 10^38
বৈশিষ্ট্য: দশমিক মান লেখার সময় f যোগ করতে হয় (যেমন, 5.75f)।
উদাহরণ:
float height = 5.9f;
Console.WriteLine(height); // Output: 5.9
৩. double (Double precision floating-point)
বর্ণনা: double ডেটা টাইপটি দশমিক সংখ্যা ধারণ করে এবং float এর চেয়ে বেশি সঠিকতার জন্য ব্যবহৃত হয়।
সাইজ: 8 byte
রেঞ্জ: প্রায় ±5.0 × 10^−324 থেকে ±1.7 × 10^308
বৈশিষ্ট্য: দশমিক মান লেখার সময় f যোগ করার প্রয়োজন হয় না।
উদাহরণ:
double price = 19.99;
Console.WriteLine(price); // Output: 19.99
৪. char (Character)
বর্ণনা: char একক অক্ষর ধারণ করে। এটি সাধারণত একটি অক্ষর বা প্রতীক সংরক্ষণের জন্য ব্যবহৃত হয়।
সাইজ: 2 byte
রেঞ্জ: Unicode অক্ষর 0 থেকে 65535 পর্যন্ত (যেমন, 'A' থেকে 'Z' বা '0' থেকে '9')।
বৈশিষ্ট্য: একক উদ্ধৃতি চিহ্নে রাখা হয় (যেমন, 'A')।
উদাহরণ:
char grade = 'A';
Console.WriteLine(grade); // Output: A
৫. string (String of characters)
বর্ণনা: string এক বা একাধিক অক্ষরের সমন্বয়ে গঠিত টেক্সট ধারণ করে। এটি C# এর মধ্যে একটি reference টাইপ।
সাইজ: ভিন্ন ভিন্ন দৈর্ঘ্যের হতে পারে।
বৈশিষ্ট্য: দ্বৈত উদ্ধৃতি চিহ্নে রাখা হয় (যেমন, "Hello")। এটি অনেকগুলো char এর সমন্বয়ে গঠিত।
উদাহরণ:
string name = "Alice";
Console.WriteLine(name); // Output: Alice
৬. bool (Boolean)
বর্ণনা: bool ডেটা টাইপটি সত্য (True) বা মিথ্যা (False) মান ধারণ করে।
সাইজ: 1 byte
ব্যবহার: সাধারণত শর্ত যাচাই বা লজিক্যাল অপারেশনে ব্যবহৃত হয়।
উদাহরণ:
bool isActive = true;
Console.WriteLine(isActive); // Output: True
উদাহরণ প্রোগ্রাম: বিভিন্ন ডেটা টাইপের ব্যবহার
নিচে একটি উদাহরণ প্রোগ্রাম রয়েছে, যেখানে C# এর বিভিন্ন ডেটা টাইপের ব্যবহার দেখানো হয়েছে:
using System;
namespace DataTypeExample
{
class Program
{
static void Main(string[] args)
{
int age = 25;
float height = 5.9f;
double salary = 25000.75;
char initial = 'A';
string name = "Alice";
bool isStudent = false;
Console.WriteLine("Name: " + name);
Console.WriteLine("Age: " + age);
Console.WriteLine("Height: " + height);
Console.WriteLine("Salary: " + salary);
Console.WriteLine("Initial: " + initial);
Console.WriteLine("Is Student: " + isStudent);
}
}
}
আউটপুট
Name: Alice
Age: 25
Height: 5.9
Salary: 25000.75
Initial: A
Is Student: False
সারসংক্ষেপ
সি শার্পে (C#) ভিন্ন ভিন্ন ডেটা টাইপ রয়েছে, যেমন int, float, double, char, string, এবং bool। এগুলোর প্রতিটি নির্দিষ্ট ধরণের ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়। ডেটা টাইপের সঠিক ব্যবহার কোডের কার্যকারিতা ও ডেটা ম্যানেজমেন্টকে আরো সঠিক ও কার্যকর করে তোলে।
কনস্ট্যান্ট (Constant) হলো একটি ডেটা মান যা প্রোগ্রাম চলাকালীন সময়ে পরিবর্তন হয় না। কনস্ট্যান্ট ব্যবহার করলে আমরা প্রোগ্রামে এমন মান সংরক্ষণ করতে পারি যা সবসময় একই থাকে এবং পরিবর্তিত হয় না। C# এ কনস্ট্যান্ট নির্ধারণ করতে const কীওয়ার্ড ব্যবহার করা হয়।
const কীওয়ার্ড
C# এ const কীওয়ার্ড ব্যবহার করে একটি কনস্ট্যান্ট ডিক্লেয়ার করা হয়। এটি ডেটা টাইপের আগে ব্যবহার করতে হয় এবং একবার কনস্ট্যান্ট মান নির্ধারণ করলে তা আর পরিবর্তন করা যায় না। const কীওয়ার্ড ব্যবহার করে নির্ধারিত মান শুধুমাত্র কম্পাইল টাইমেই সেট করা যায়, প্রোগ্রাম চলাকালীন সময়ে পরিবর্তন করা সম্ভব নয়।
const এর নিয়ম
constভেরিয়েবলের মান একবার নির্ধারিত হলে তা আর পরিবর্তন করা যায় না।constভেরিয়েবলটি অবশ্যই ডিক্লেয়ার করার সময়ই মান প্রদান করতে হবে।constশুধুমাত্র প্রিমিটিভ ডেটা টাইপ (যেমনint,double,char,string) বাenumডেটা টাইপে ব্যবহার করা যায়।constভেরিয়েবলটি সাধারণত সব বড় অক্ষরে লেখা হয়, যাতে তা সহজে চেনা যায়।
const কনস্ট্যান্ট উদাহরণ
নিচে const কীওয়ার্ড ব্যবহার করে কনস্ট্যান্ট ডিক্লেয়ার করার কিছু উদাহরণ দেওয়া হলো:
using System;
namespace ConstantsExample
{
class Program
{
// const কনস্ট্যান্ট ডিক্লেয়ার করা হয়েছে
const double PI = 3.14159;
const int MAX_STUDENTS = 50;
const string SCHOOL_NAME = "Green Valley High School";
static void Main(string[] args)
{
Console.WriteLine("Value of PI: " + PI);
Console.WriteLine("Max Students Allowed: " + MAX_STUDENTS);
Console.WriteLine("School Name: " + SCHOOL_NAME);
}
}
}
উপরে উল্লেখিত উদাহরণে:
PI,MAX_STUDENTS, এবংSCHOOL_NAMEকনস্ট্যান্ট ভেরিয়েবল হিসেবে ডিক্লেয়ার করা হয়েছে।- এই ভেরিয়েবলগুলির মান প্রোগ্রাম চলাকালীন পরিবর্তন করা যাবে না।
const এর ব্যবহার
const এর ব্যবহার বিভিন্ন ধরনের স্থির মান সংরক্ষণে সহায়ক। কিছু সাধারণ ব্যবহার হলো:
- গাণিতিক ধ্রুবক (Mathematical Constants): যেমন
PI, যা গোলকের পরিধি ও ব্যাসের অনুপাত প্রদর্শন করে এবং সর্বদা একই থাকে। - সিস্টেম ধ্রুবক (System Constants): যেমন, সর্বোচ্চ মান যা কোনো ভেরিয়েবল ধারণ করতে পারে বা সর্বাধিক অনুমোদিত সংখ্যক ব্যবহারকারী।
- স্ট্রিং কনস্ট্যান্ট: এমন স্ট্রিং যা কখনো পরিবর্তিত হবে না, যেমন প্রতিষ্ঠানের নাম, দেশের নাম ইত্যাদি।
const double GRAVITY = 9.8; // মাধ্যাকর্ষণ বল
const int MAX_ATTEMPTS = 5; // সর্বাধিক চেষ্টা সংখ্যা
const string COUNTRY = "Bangladesh"; // দেশ
const এবং readonly এর মধ্যে পার্থক্য
C# এ const এর পাশাপাশি readonly কীওয়ার্ডও ব্যবহৃত হয়, তবে এদের মধ্যে কিছু গুরুত্বপূর্ণ পার্থক্য আছে:
| বৈশিষ্ট্য | const | readonly |
|---|---|---|
| মান পরিবর্তন | কম্পাইল টাইমে সেট করা হয় | রUNTIME এ অথবা কনস্ট্রাক্টরে সেট করা যায় |
| পরিবর্তনযোগ্যতা | একবার সেট করলে পরিবর্তন করা যায় না | শুধুমাত্র কনস্ট্রাক্টরে পরিবর্তন করা যায় |
| প্রয়োগের ধরন | শুধুমাত্র প্রিমিটিভ ডেটা টাইপ ও স্ট্যাটিক | রেফারেন্স টাইপ সহ প্রিমিটিভ টাইপও |
const ব্যবহার করে সতর্কতা
const কনস্ট্যান্ট ব্যবহার করার সময় কিছু বিষয় মাথায় রাখা উচিত:
- পরিবর্তনযোগ্য নয়:
constকনস্ট্যান্টের মান একবার সেট করলে তা আর পরিবর্তন করা যাবে না। - কোডে পরিবর্তন: যদি অনেক জায়গায়
constকনস্ট্যান্ট ব্যবহার করা হয় এবং পরে মান পরিবর্তন করতে চান, তবে কোডে অনেক পরিবর্তন করতে হবে। এজন্য দীর্ঘমেয়াদে নির্ধারিত মানের জন্যreadonlyব্যবহার করা বেশি উপযোগী হতে পারে।
সারসংক্ষেপে
C# এ const কীওয়ার্ড ব্যবহার করে স্থির বা অপরিবর্তনীয় মান সংরক্ষণ করা যায়, যা কম্পাইল টাইমে নির্ধারিত হয়। এটি প্রোগ্রামে বিভিন্ন ধ্রুবক মান সংরক্ষণে এবং তাদের সঠিকভাবে ব্যবহারে সহায়ক। const কনস্ট্যান্ট প্রোগ্রামের কার্যকারিতা ও নিরাপত্তা বৃদ্ধি করতে গুরুত্বপূর্ণ ভূমিকা পালন করে।
সি শার্প (C#) এ টাইপ কাস্টিং এবং টাইপ কনভার্শন দুটি গুরুত্বপূর্ণ প্রক্রিয়া, যা ডেটাকে একটি টাইপ থেকে অন্য টাইপে রূপান্তরিত করতে ব্যবহৃত হয়। এর মাধ্যমে ভিন্ন ভিন্ন ডেটা টাইপের মানকে একটি নির্দিষ্ট টাইপে রূপান্তর করা সহজ হয়।
টাইপ কাস্টিং (Type Casting)
টাইপ কাস্টিং হলো একটি টাইপের ডেটাকে ম্যানুয়ালি অন্য টাইপে রূপান্তর করার প্রক্রিয়া। C# এ দুটি ধরনের টাইপ কাস্টিং আছে:
- Implicit Casting (স্বয়ংক্রিয় কাস্টিং): ছোট থেকে বড় টাইপে রূপান্তর করা হয়, যা সিস্টেম স্বয়ংক্রিয়ভাবে করে।
- Explicit Casting (ম্যানুয়াল কাস্টিং): বড় থেকে ছোট টাইপে রূপান্তর করতে গেলে ম্যানুয়ালি করতে হয়।
১. ইম্প্লিসিট কাস্টিং (Implicit Casting)
ইম্প্লিসিট কাস্টিংয়ে ছোট ডেটা টাইপ (যেমন, int) থেকে বড় ডেটা টাইপে (যেমন, double) রূপান্তর করা যায়। এতে ডেটার ক্ষতি হয় না এবং প্রোগ্রামারকে কোনো অতিরিক্ত কাজ করতে হয় না।
int num = 100;
double result = num; // Implicit casting from int to double
Console.WriteLine(result); // Output: 100
২. এক্সপ্লিসিট কাস্টিং (Explicit Casting)
এক্সপ্লিসিট কাস্টিংয়ে বড় ডেটা টাইপ থেকে ছোট ডেটা টাইপে রূপান্তর করতে হয়। এক্ষেত্রে ডেটার ক্ষতি হওয়ার সম্ভাবনা থাকে, তাই প্রোগ্রামারকে ম্যানুয়ালি কাস্টিং করতে হয়।
double num = 123.45;
int result = (int)num; // Explicit casting from double to int
Console.WriteLine(result); // Output: 123 (decimal part removed)
টাইপ কনভার্শন (Type Conversion)
সি শার্পে টাইপ কনভার্শনের জন্য বিভিন্ন বিল্ট-ইন মেথড রয়েছে, যা একটি টাইপকে সহজেই অন্য টাইপে রূপান্তর করতে সাহায্য করে। কিছু গুরুত্বপূর্ণ টাইপ কনভার্শন মেথড হলো:
Convert.ToInt32()Convert.ToDouble()Convert.ToString()Convert.ToBoolean()
উদাহরণ
string str = "123";
int num = Convert.ToInt32(str); // Convert string to int
Console.WriteLine(num); // Output: 123
পার্সিং (Parsing)
int.Parse(), double.Parse() ইত্যাদি মেথড ব্যবহার করে স্ট্রিংকে সংখ্যায় রূপান্তর করা যায়।
string str = "456";
int num = int.Parse(str); // Parse string to int
Console.WriteLine(num); // Output: 456
TryParse ব্যবহার করে সুরক্ষিত কনভার্শন
TryParse() মেথড ব্যবহার করে স্ট্রিংকে কনভার্ট করার সময় সুরক্ষিত উপায়ে কনভার্সন করা যায়। যদি কনভার্সন সফল না হয়, তাহলে এটি false রিটার্ন করে।
string str = "789";
int result;
bool success = int.TryParse(str, out result);
Console.WriteLine(success); // Output: True
Console.WriteLine(result); // Output: 789
টাইপ কাস্টিং বনাম টাইপ কনভার্শন
| বৈশিষ্ট্য | টাইপ কাস্টিং | টাইপ কনভার্শন |
|---|---|---|
| প্রক্রিয়া | ম্যানুয়াল | বিল্ট-ইন মেথড ব্যবহার করে |
| ব্যবহারযোগ্যতা | বড় থেকে ছোট বা ছোট থেকে বড় | এক ডেটা টাইপ থেকে অন্য ডেটা টাইপে |
| ডেটা ক্ষতির সম্ভাবনা | হ্যাঁ | না (বেশিরভাগ ক্ষেত্রে) |
| উদাহরণ | (int) 123.45 | Convert.ToInt32("123") |
উদাহরণ প্রোগ্রাম
নিচে টাইপ কাস্টিং এবং টাইপ কনভার্সনের একটি প্রোগ্রাম রয়েছে:
using System;
namespace TypeCastingAndConversion
{
class Program
{
static void Main(string[] args)
{
// Implicit Casting
int num1 = 10;
double num2 = num1;
Console.WriteLine("Implicit Casting: " + num2);
// Explicit Casting
double num3 = 10.99;
int num4 = (int)num3;
Console.WriteLine("Explicit Casting: " + num4);
// Convert Method
string str1 = "100";
int num5 = Convert.ToInt32(str1);
Console.WriteLine("Convert Method: " + num5);
// Parse Method
string str2 = "200";
int num6 = int.Parse(str2);
Console.WriteLine("Parse Method: " + num6);
// TryParse Method
string str3 = "300";
int num7;
bool success = int.TryParse(str3, out num7);
Console.WriteLine("TryParse Method: " + success + ", Value: " + num7);
}
}
}
আউটপুট
Implicit Casting: 10
Explicit Casting: 10
Convert Method: 100
Parse Method: 200
TryParse Method: True, Value: 300
সারসংক্ষেপ
সি শার্পে টাইপ কাস্টিং এবং টাইপ কনভার্শনের মাধ্যমে ডেটার রূপান্তর করা হয়। টাইপ কাস্টিং সাধারণত ইম্প্লিসিট বা এক্সপ্লিসিট পদ্ধতিতে করা হয়, আর টাইপ কনভার্শন বিল্ট-ইন মেথড (যেমন, Convert.ToInt32(), Parse(), TryParse()) ব্যবহার করে সম্পন্ন করা হয়। টাইপ কনভার্শন ডেটার রূপান্তরে নিরাপত্তা এবং কার্যকারিতা নিশ্চিত করে।
Read more