बाइनरी लिटरल्स (Binary Literals)
C# 7.0 से पहले केवल दशमलव और हेक्साडेसिमल मान असाइन किए जा सकते थे। C# 7.0 ने बाइनरी लिटरल्स पेश किए जो 0b या 0B प्रीफिक्स का उपयोग करते हैं।
उदाहरण
class Program {
public static void Main() {
var bn = 0b1000001; // बाइनरी लिटरल (दशमलव 65)
System.Console.WriteLine(bn.GetType()); // System.Int32
System.Console.WriteLine(Convert.ToChar(bn)); // 'A'
Console.ReadLine();
}
}
आउटपुट
System.Int32
A
डिजिट सेपरेटर (Digit Separator)
डिजिट सेपरेटर अंडरस्कोर (_) का उपयोग करता है जो किसी भी न्यूमेरिक लिटरल में पठनीयता सुधारने के लिए रखा जा सकता है। यह कंपाइलर द्वारा अनदेखा किया जाता है।
उदाहरण
class Program {
public static void Main() {
long Salary = 1_00_00_00_00_000; // भारतीय संख्या प्रणाली: 1 लाख करोड़
System.Console.WriteLine(Salary.GetType()); // System.Int64
System.Console.WriteLine(Salary); // 100000000000
Console.ReadLine();
}
}
आउटपुट
System.Int64
100000000000
अतिरिक्त उदाहरण
// हेक्साडेसिमल में सेपरेटर
int hex = 0xFF_FF_FF_FF;
// बाइनरी में सेपरेटर (ग्रुपिंग के लिए उपयोगी)
int binary = 0b1010_1100_1111_0000;
// फ्लोट/डबल में
double pi = 3.14159_26535_89793;
decimal price = 1_999.99m;
लाभ
- पठनीयता: बड़ी संख्याओं को समूहों में विभाजित करना आसान
- त्रुटि रोकथाम: गलत अंक गिनने की संभावना कम
- डोमेन-विशिष्ट ग्रुपिंग: भारतीय (लाख/करोड़), क्रेडिट कार्ड, IP पते आदि के लिए
- कोई रनटाइम लागत नहीं: केवल कंपाइल-टाइम फीचर
नियम
- संख्या की शुरुआत या अंत में नहीं रख सकते
- दशमलव बिंदु के तुरंत बाद नहीं रख सकते
- एकाधिक अंडरस्कोर लगातार उपयोग कर सकते हैं