C#-এ ইউজার-ডিফাইনড ডেটা টাইপগুলো হলো স্ট্রাকচার (structures) এবং এনুমেরেশন (enumeration)।
স্ট্রাকচার (Structure)
C#-এ একটি স্ট্রাকচার একটি ভ্যালু টাইপ ডেটা টাইপ। এটি আপনাকে একটি ভেরিয়েবলে বিভিন্ন ডেটা টাইপের রিলেটেড ডেটা ধারণ করতে সাহায্য করে। স্ট্রাকচার তৈরির জন্য struct কীওয়ার্ড ব্যবহৃত হয়।
C# স্ট্রাকচারগুলো বৈশিষ্ট্য:
- স্ট্রাকচারগুলোর মেথড, ফিল্ড, ইন্ডেক্সার, প্রোপার্টি, অপারেটর মেথড এবং ইভেন্ট থাকতে পারে।
- স্ট্রাকচারগুলোর ডিফাইনড কনস্ট্রাক্টর থাকতে পারে, কিন্তু ডিস্ট্রাক্টর (destructors) থাকতে পারে না। তবে, আপনি একটি স্ট্রাকচারের জন্য ডিফল্ট কনস্ট্রাক্টর ডিফাইন করতে পারবেন না। ডিফল্ট কনস্ট্রাক্টর স্বয়ংক্রিয়ভাবে ডিফাইন হয় এবং পরিবর্তন করা যায় না।
- ক্লাসের বিপরীতে, স্ট্রাকচার অন্যান্য স্ট্রাকচার বা ক্লাস ইনহেরিট করতে পারে না।
- স্ট্রাকচারকে অন্যান্য স্ট্রাকচার বা ক্লাসের বেস হিসেবে ব্যবহার করা যায় না।
- একটি স্ট্রাকচার এক বা একাধিক ইন্টারফেস ইমপ্লিমেন্ট করতে পারে।
- স্ট্রাকচার মেম্বারগুলোকে abstract, virtual, বা protected হিসেবে স্পেসিফাই করা যায় না।
এনুমেরেশন (Enumeration)
Enum হলো এনুমেরেশন, যা নামযুক্ত কনস্ট্যান্টের একটি সেট স্টোর করে যেমন বছর, প্রোডাক্ট, মাস, সিজন ইত্যাদি।
Enum কনস্ট্যান্টের ডিফল্ট মান ০ থেকে শুরু হয় এবং ক্রমান্বয়ী বাড়ে। এর একটি ফিক্সড সেট কনস্ট্যান্ট থাকে এবং সহজে ট্রাভার্স করা যায়।
উদাহরণস্বরূপ, এনাম সেট করা হয়েছে নিচের মত:
public enum Vehicle { Car, Bus, Truck }