উত্তর:
নাল বুলটি কী উপস্থাপন করবে তা আপনাকে শেষ পর্যন্ত সিদ্ধান্ত নিতে হবে। যদি null
হওয়া উচিত তবে false
আপনি এটি করতে পারেন:
bool newBool = x.HasValue ? x.Value : false;
বা:
bool newBool = x.HasValue && x.Value;
বা:
bool newBool = x ?? false;
Linq
বিবৃতিতে' যেখানে 'দফার জন্য প্রস্তাব করা হয়েছিল , আমি বুঝতে পারি lifted operators
না কেন লিনকের ভিতরে কাজ করছে বলে মনে হচ্ছে না (সম্ভবত এটি কেবল VB.NET?) - আমি কেবল পরীক্ষা করেছি এবং এটি একটি অবৈধ কাস্ট ব্যতিক্রম ছুঁড়ে
আপনি ব্যবহার করতে পারেন নাল-কোয়ালেসিং অপারেটর : x ?? something
, যেখানে something
একটি বুলিয়ান মান যে আপনি ব্যবহার করতে চান তাহলে হয় x
হয় null
।
উদাহরণ:
bool? myBool = null;
bool newBool = myBool ?? false;
newBool
মিথ্যা হবে।
bool? myBool = null; bool newBool = myBool ?? false;
আপনি Nullable{T}
GetValueOrDefault()
পদ্ধতি ব্যবহার করতে পারেন । এটি বাতিল হলে মিথ্যা ফিরে আসবে।
bool? nullableBool = null;
bool actualBool = nullableBool.GetValueOrDefault();
if (nullableBool.GetValueOrDefault())
আপনি ব্যবহার করতে যাচ্ছেন এমন bool?
একটি ইন if
বিবৃতি, আমি খুঁজে পাব সবচেয়ে সহজ পদ্ধিতি হল জিনিস বিরুদ্ধে পারেন তুলনা হয় true
বা false
।
bool? b = ...;
if (b == true) { Debug.WriteLine("true"; }
if (b == false) { Debug.WriteLine("false"; }
if (b != true) { Debug.WriteLine("false or null"; }
if (b != false) { Debug.WriteLine("true or null"; }
অবশ্যই, আপনি পাশাপাশি নাল তুলনা করতে পারেন।
bool? b = ...;
if (b == null) { Debug.WriteLine("null"; }
if (b != null) { Debug.WriteLine("true or false"; }
if (b.HasValue) { Debug.WriteLine("true or false"; }
//HasValue and != null will ALWAYS return the same value, so use whatever you like.
আপনি যদি এটিকে অ্যাপ্লিকেশনের অন্যান্য অংশে যেতে একটি বোলে রূপান্তর করতে চলেছেন তবে নুল কোলেসেস অপারেটরটি আপনি যা চান তা হ'ল।
bool? b = ...;
bool b2 = b ?? true; // null becomes true
b2 = b ?? false; // null becomes false
যদি আপনি ইতিমধ্যে শূন্যের জন্য যাচাই করে ফেলেছেন এবং আপনি কেবল মানটি চান তবে মান সম্পত্তিটি অ্যাক্সেস করুন।
bool? b = ...;
if(b == null)
throw new ArgumentNullException();
else
SomeFunc(b.Value);
এই উত্তরটি ব্যবহারের ক্ষেত্রে যখন আপনি কেবল bool?
কোনও শর্তে পরীক্ষা করতে চান । এটি একটি সাধারণ পেতে ব্যবহার করা যেতে পারে bool
। এটি এমন একটি বিকল্প যা আমি ব্যক্তিগতভাবে পড়তে সহজ মনে করি coalescing operator ??
।
আপনি যদি কোনও শর্ত পরীক্ষা করতে চান তবে আপনি এটি ব্যবহার করতে পারেন
bool? nullableBool = someFunction();
if(nullableBool == true)
{
//Do stuff
}
উপরেরটি যদি সত্য হয় তবেই bool?
সত্য হবে।
আপনি এ bool
থেকে নিয়মিত বরাদ্দ করতে এটি ব্যবহার করতে পারেনbool?
bool? nullableBool = someFunction();
bool regularBool = nullableBool == true;
জাদুকরী হিসাবে একই
bool? nullableBool = someFunction();
bool regularBool = nullableBool ?? false;
এটি থিমটিতে একটি আকর্ষণীয় প্রকরণ। প্রথম এবং দ্বিতীয় নজরে আপনি ধরে নেবেন সত্য শাখাটি নেওয়া হয়েছে। তাই না!
bool? flag = null;
if (!flag ?? true)
{
// false branch
}
else
{
// true branch
}
আপনি যা চান তা পাওয়ার উপায় হ'ল:
if (!(flag ?? true))
{
// false branch
}
else
{
// true branch
}
System.Convers আমার দ্বারা ভাল কাজ করে।
using System;
...
Bool fixed = Convert.ToBoolean(NullableBool);
VB.NET
যদি আপনি না:dim newBool as Boolean = CBool(x)
? হবেnull
রূপান্তরিত করাfalse
বা ব্যতিক্রম ফেলে দেওয়া হবে?