Kode sumber untuk System.Booleandi situs web Sumber Referensi menyatakan bahwa instance struct Booleanhanya berisi boolbidang tunggal 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;
}
Tapi saya perhatikan bahwa ...
booladalah alias bahasa C # untukSystem.Boolean.- Tipe ini
struct Booleanadalah tipe nilai yang artinya tidak dapat memuat dirinya sendiri sebagai bidang . - ... namun kode ini mungkin dikompilasi.
- Saya mengerti bahwa ketika
-nostdlibopsi compiler diatur Anda perlu menyediakan Anda sendiri penting jenis definisi sepertiSystem.String,System.Int32,System.Exception- itulah satu-satunya perbedaan. - Kode sumber yang dipublikasikan tidak mengandung atribut khusus seperti
[MethodImpl( MethodImplOptions.InternalCall )].
Jadi bagaimana cara kompilasi kode ini?
booladalah kata kunci dalam bahasa C #. Baik kompiler dan runtime memiliki banyak pengetahuan bawaan tentang tipe dan tidak memerlukan bantuan dari System.Boolean. Deklarasi di mscorlib untuk tipe nilai primitif cocok dengan representasi kotak dari tipe tersebut.