আজকে আমরা Nullable Types নিয়ে কথা বলবো ।।
সাধারণভাবে , নাল বলতে আমরা কি বুঝি ??? অনেকেই বুঝি , নাল বলতে বুঝি - শূন্য বুঝায় , বাট আসলে ব্যপার'টা কিন্তু তা নয় ।। ধরো , তোমায় একটা ফর্ম পুরণ করতে দিলো , সেখানে - একটা অপশন আছে , Are U Married ?? , দুইটি অপশন আছে - "Yes" & "No" | এখন , ধরো - তুমি কোনোটাতেই টিক দিলে না , তাহলে -- ব্যপারটা কি ঘটলো ??? এর মানে কিন্তু , দাড়ালো -- "Null"
এর মানে , সেই বিষয়ে - তোমার কোনো মতামত নেই ।। এই ঘটনাই -- প্রোগ্রামের মাধ্যমে লিখে ফেলি , চলো ------------------
একটা জিনিস মাথায় রাখা উচিত , সেটা হলো - bool কিন্তু , নন নাল-এবল , বাট একটা ? চিহ্ন যোগ করেই , আমরা এটাকে নালেবল টাইপ করতে পারি -------
using System;
class Program
{
static void Main()
{
bool? joy = null;
if(joy==true)
{
Console.WriteLine("You are Married");
}
else if(joy==false)
{
Console.WriteLine("You Are Not Married");
}
else
{
Console.WriteLine("Not Filled By You");
}
Console.ReadKey();
}
}
আশা করি , নালএবল টাইপ নিয়ে ধারণা ভালোই হলো ।। এখন , আমরা আরেকটি বিষয় নিয়ে জানার
চেষ্টা করবো ----------------সেটা হলো , Null Coalescing Operator (?? )
চলো , একটা কোড দেখে আসি আগে ---
using System;
class Program
{
static void Main()
{
int? ticketsremaining = null;
int availabletickets;
if(ticketsremaining==null)
{
availabletickets = 0;
}
else
{
availabletickets = (int)ticketsremaining;
}
Console.WriteLine("Available Tickets = {0} ", availabletickets);
Console.ReadKey();
}
}
এখানে , আমরা int কে নালএবল টাইপ - এ কনভার্ট করতে , ? চিহ্ন ইউস করেছি ।। আরেকটি জিনিস , আমাদের বুঝতে হবে , নন -নালএবল কে নালএবল-এ কনভার্ট করতে কিন্তু ,
availabletickets = (int)ticketsremaining; কাস্টিং করেছি ।। এখন , কোড'টা দুই একবার রান করে / পড়ে বোঝার চেষ্টা করো , আমি কি বুঝাতে চেয়েছি ??? এখন নীচের কোড'টি দেখো ---------------
using System;
namespace ConsoleApplicationnew1
{
class Program
{
static void Main()
{
int? ticketsremaining = null;
int availabletickets = ticketsremaining??0;
Console.WriteLine("Available Tickets = {0} ", availabletickets);
Console.ReadKey();
}
}
}
এই কোডের আগেরটা রান করলেও , যা আউটপুট আসবে , এটা রান করালেও - একই আউটপুট আসবে ।। কিন্তু , আমাদের if - else স্টেইট্মেন্ট কষ্ট করে ইউস করতে হলো না । শুধুমাত্র -
int availabletickets = ticketsremaining??0; এই লাইনেই Null Coalescing Operator (?? ) ব্যবহার করে সবকিছু , এক নিমিষেই করে ফেললাম ।। কিছুটা , টারনারি অপারেটর এর মতো ।
এই লাইনে , যা হচ্ছে - তা হলো , ticketsremaining যদি নাল হয়ে থাকে , তাহলে - ?? এর পরের মান'টা
availabletickets এর সাথে , অ্যাসাইন হবে - অন্যথায় , ticketsremaining এর মান যা আছে , তাই -- availabletickets এর সাথে , অ্যাসাইন হবে । এখানে , টাইপকাস্টিং করার কোনো দরকার হবে না ।।
আশা করি , Nullable Types ও Null Coalescing Operator (?? ) নিয়ে বেসিক ধারণা কিছুটা ক্লিয়ার হয়েছে ।। আজ এইটুকুই ----------------------
সাধারণভাবে , নাল বলতে আমরা কি বুঝি ??? অনেকেই বুঝি , নাল বলতে বুঝি - শূন্য বুঝায় , বাট আসলে ব্যপার'টা কিন্তু তা নয় ।। ধরো , তোমায় একটা ফর্ম পুরণ করতে দিলো , সেখানে - একটা অপশন আছে , Are U Married ?? , দুইটি অপশন আছে - "Yes" & "No" | এখন , ধরো - তুমি কোনোটাতেই টিক দিলে না , তাহলে -- ব্যপারটা কি ঘটলো ??? এর মানে কিন্তু , দাড়ালো -- "Null"
এর মানে , সেই বিষয়ে - তোমার কোনো মতামত নেই ।। এই ঘটনাই -- প্রোগ্রামের মাধ্যমে লিখে ফেলি , চলো ------------------
একটা জিনিস মাথায় রাখা উচিত , সেটা হলো - bool কিন্তু , নন নাল-এবল , বাট একটা ? চিহ্ন যোগ করেই , আমরা এটাকে নালেবল টাইপ করতে পারি -------
using System;
class Program
{
static void Main()
{
bool? joy = null;
if(joy==true)
{
Console.WriteLine("You are Married");
}
else if(joy==false)
{
Console.WriteLine("You Are Not Married");
}
else
{
Console.WriteLine("Not Filled By You");
}
Console.ReadKey();
}
}
আশা করি , নালএবল টাইপ নিয়ে ধারণা ভালোই হলো ।। এখন , আমরা আরেকটি বিষয় নিয়ে জানার
চেষ্টা করবো ----------------সেটা হলো , Null Coalescing Operator (?? )
চলো , একটা কোড দেখে আসি আগে ---
using System;
class Program
{
static void Main()
{
int? ticketsremaining = null;
int availabletickets;
if(ticketsremaining==null)
{
availabletickets = 0;
}
else
{
availabletickets = (int)ticketsremaining;
}
Console.WriteLine("Available Tickets = {0} ", availabletickets);
Console.ReadKey();
}
}
এখানে , আমরা int কে নালএবল টাইপ - এ কনভার্ট করতে , ? চিহ্ন ইউস করেছি ।। আরেকটি জিনিস , আমাদের বুঝতে হবে , নন -নালএবল কে নালএবল-এ কনভার্ট করতে কিন্তু ,
availabletickets = (int)ticketsremaining; কাস্টিং করেছি ।। এখন , কোড'টা দুই একবার রান করে / পড়ে বোঝার চেষ্টা করো , আমি কি বুঝাতে চেয়েছি ??? এখন নীচের কোড'টি দেখো ---------------
using System;
namespace ConsoleApplicationnew1
{
class Program
{
static void Main()
{
int? ticketsremaining = null;
int availabletickets = ticketsremaining??0;
Console.WriteLine("Available Tickets = {0} ", availabletickets);
Console.ReadKey();
}
}
}
এই কোডের আগেরটা রান করলেও , যা আউটপুট আসবে , এটা রান করালেও - একই আউটপুট আসবে ।। কিন্তু , আমাদের if - else স্টেইট্মেন্ট কষ্ট করে ইউস করতে হলো না । শুধুমাত্র -
int availabletickets = ticketsremaining??0; এই লাইনেই Null Coalescing Operator (?? ) ব্যবহার করে সবকিছু , এক নিমিষেই করে ফেললাম ।। কিছুটা , টারনারি অপারেটর এর মতো ।
এই লাইনে , যা হচ্ছে - তা হলো , ticketsremaining যদি নাল হয়ে থাকে , তাহলে - ?? এর পরের মান'টা
availabletickets এর সাথে , অ্যাসাইন হবে - অন্যথায় , ticketsremaining এর মান যা আছে , তাই -- availabletickets এর সাথে , অ্যাসাইন হবে । এখানে , টাইপকাস্টিং করার কোনো দরকার হবে না ।।
আশা করি , Nullable Types ও Null Coalescing Operator (?? ) নিয়ে বেসিক ধারণা কিছুটা ক্লিয়ার হয়েছে ।। আজ এইটুকুই ----------------------
No comments:
Post a Comment