System.BooleanReferans Kaynak web sitesindeki kaynak kodu , struct Booleaniçerdiği örneklerin yalnızca tek bir boolalan içerdiğini belirtir 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;
}
Ama fark ettim ki ...
boololan bir C # dili takma içinSystem.Boolean.- Tür,
struct Booleanbir değer türü olup , kendisini alan olarak içeremeyeceği anlamına gelir . - ... yine de bu kod muhtemelen derleniyor.
- Ben ne zaman anlıyoruz
-nostdlibderleyici seçeneği ayarlanır Kendi sağlamak için gereken temel tip tanımları gibiSystem.String,System.Int32,System.Exceptiontek fark olduğunu -. - Yayınlanan kaynak kodu, gibi başka hiçbir özel özellik içermez
[MethodImpl( MethodImplOptions.InternalCall )].
Peki bu kod nasıl derleniyor?
boolbir anahtar kelimedir . Hem derleyici hem de çalışma zamanı, tür hakkında çok fazla yerleşik bilgiye sahiptir ve System.Boolean'dan yardıma ihtiyaç duymaz. İlkel değer türleri için mscorlib'deki bildirimler, türün kutulu gösterimi ile eşleşir.