C# নালেবল টাইপ (Nullable<T> বা T?) প্রদান করে যাতে ভ্যালু টাইপ ভেরিয়েবলে নাল অ্যাসাইন করা যায়। C# 2.0-এ নালেবল টাইপ এল।
- নালেবল টাইপ শুধু ভ্যালু টাইপের সাথে ব্যবহার করা যায়।
Valueপ্রপার্টিInvalidOperationExceptionথ্রো করে যদি ভ্যালু নাল হয়, অন্যথায় ভ্যালু রিটার্ন করে।HasValueপ্রপার্টিtrueরিটার্ন করে যদি ভ্যালু থাকে, নাল হলেfalse।- শুধু
==এবং!=অপারেটর ব্যবহার করা যায় নালেবল টাইপের সাথে। অন্য কমপ্যারিজনের জন্যNullableস্ট্যাটিক ক্লাস। - নেস্টেড নালেবল টাইপ অ্যালোড নয় (
Nullable<Nullable<int>>কম্পাইল এরর দেবে)।
উদাহরণ ১: এক্সটেনশন মেথড দিয়ে পার্স
static class Program
{
static void Main(string[] args)
{
string s = "123";
System.Console.WriteLine(s.ToNullableInt()); // 123
Console.ReadLine();
}
static int? ToNullableInt(this string s)
{
int i;
if (int.TryParse(s, out i)) return i;
return null;
}
}
আউটপুট
123
উদাহরণ ২: নাল স্ট্রিং পাস করলে
static class Program
{
static void Main(string[] args)
{
string s = null;
System.Console.WriteLine(s.ToNullableInt()); // কিছুই প্রিন্ট হবে না (নাল)
Console.ReadLine();
}
static int? ToNullableInt(this string s)
{
int i;
if (int.TryParse(s, out i)) return i;
return null;
}
}
আউটপুট
(খালি লাইন)
বিকল্প: int.TryParse সরাসরি ব্যবহার করুন, বা Convert.ToInt32 (নাল হলে ০ রিটার্ন করে, এক্সেপশন থ্রো করে না)।