System.Booleanसंदर्भ स्रोत वेबसाइट के लिए स्रोत-कोड में कहा गया है कि struct Booleanकेवल एक ही boolक्षेत्र के उदाहरण हैं private bool m_value:
https://referencesource.microsoft.com/#mscorlib/system/boolean.cs,f1b135ff6c380b37
namespace System {
using System;
using System.Globalization;
using System.Diagnostics.Contracts;
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public struct Boolean : IComparable, IConvertible
#if GENERICS_WORK
, IComparable<Boolean>, IEquatable<Boolean>
#endif
{
private bool m_value;
internal const int True = 1;
internal const int False = 0;
internal const String TrueLiteral = "True";
internal const String FalseLiteral = "False";
public static readonly String TrueString = TrueLiteral;
public static readonly String FalseString = FalseLiteral;
}
लेकिन मैंने देखा कि ...
boolके लिए एक C # भाषा उपनाम हैSystem.Boolean।- प्रकार वह है
struct Booleanजो एक मान-प्रकार है जिसका अर्थ है कि यह एक क्षेत्र के रूप में खुद को शामिल नहीं कर सकता है । - ... फिर भी यह कोड संकलित है।
- मैं समझता हूँ कि जब
-nostdlibसंकलक विकल्प सेट किया गया है आप अपने खुद के प्रदान करने की आवश्यकता आवश्यक प्रकार परिभाषाएं चाहतेSystem.String,System.Int32,System.Exception- कि यही एक अंतर है। - प्रकाशित स्रोत-कोड में कोई अन्य विशेष विशेषता नहीं है
[MethodImpl( MethodImplOptions.InternalCall )]।
तो यह कोड कैसे संकलित करता है?
boolएक कीवर्ड है। कंपाइलर और रनटाइम दोनों में टाइप के बारे में बहुत कुछ अंतर्निहित ज्ञान होता है और उन्हें System.Boolean की सहायता की आवश्यकता नहीं होती है। आदिम मूल्य प्रकारों के लिए mscorlib में घोषणाएं बॉक्स प्रकार के प्रतिनिधित्व से मेल खाती हैं।