কনস্ট্রাক্টর (Constructors)
একটি ক্লাস কনস্ট্রাক্টর একটি ক্লাসের স্পেশাল মেম্বার ফাংশন যা নতুন অবজেক্ট তৈরি হওয়ার সময় স্বয়ংক্রিয়ভাবে এক্সিকিউট হয়।
একটি কনস্ট্রাক্টরের নাম ক্লাসের নামের সাথে একদম একই থাকে এবং এর কোনো রিটার্ন টাইপ নেই।
কনস্ট্রাক্টরের নাম ক্লাসের নামের সাথে একই:
class Demo {
public Demo() {}
}
উদাহরণ: কনস্ট্রাক্টর
using System;
namespace LineApplication {
class Line {
private double length;
public Line() {
Console.WriteLine("Object is being created");
}
public void setLength(double len) {
length = len;
}
public double getLength() {
return length;
}
static void Main(string[] args) {
Line line = new Line();
line.setLength(6.0);
Console.WriteLine("Length of line : {0}", line.getLength());
Console.ReadKey();
}
}
}
আউটপুট
Object is being created Length of line : 6
ডিস্ট্রাক্টর (Destructors)
একটি ডিস্ট্রাক্টর একটি ক্লাসের স্পেশাল মেম্বার ফাংশন যা তার ক্লাসের কোনো অবজেক্ট স্কোপ থেকে বাইরে যাওয়ার সময় এক্সিকিউট হয়। এটি কোনো মান রিটার্ন করতে পারে না এবং কোনো প্যারামিটার নেওয়া যায় না।
এর নাম ক্লাসের নামের সাথে একই থাকে কিন্তু শুরুতে টিল্ড (~) থাকে, যেমন ক্লাসের নাম Demo হলে:
public Demo() { // constructor
Console.WriteLine("Object is being created");
}
~Demo() { // destructor
Console.WriteLine("Object is being deleted");
}
উদাহরণ: ডিস্ট্রাক্টর
using System;
namespace LineApplication {
class Line {
private double length;
public Line() { // constructor
Console.WriteLine("Object is being created");
}
~Line() { // destructor
Console.WriteLine("Object is being deleted");
}
public void setLength(double len) {
length = len;
}
public double getLength() {
return length;
}
static void Main(string[] args) {
Line line = new Line();
line.setLength(6.0);
Console.WriteLine("Length of line : {0}", line.getLength());
}
}
}
আউটপুট
Object is being created Length of line : 6 Object is being deleted