Mã nguồn cho System.Booleantại trang web Nguồn tham chiếu cho biết các phiên bản của struct Booleanchỉ chứa một booltrường duy nhất 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;
}
Nhưng tôi nhận thấy rằng ...
boollà một bí danh ngôn ngữ C # choSystem.Boolean.- Loại là loại
struct Booleangiá trị có nghĩa là nó không thể chứa chính nó như là một trường . - ... nhưng mã này có lẽ sẽ biên dịch.
- Tôi hiểu rằng khi
-nostdliblựa chọn trình biên dịch được thiết lập bạn cần cung cấp riêng của bạn quan trọng định nghĩa kiểu nhưSystem.String,System.Int32,System.Exception- đó là sự khác biệt duy. - Mã nguồn được xuất bản không chứa các thuộc tính đặc biệt khác như
[MethodImpl( MethodImplOptions.InternalCall )].
Vậy làm thế nào để mã này biên dịch?
boollà một từ khóa trong ngôn ngữ C #. Cả trình biên dịch và thời gian chạy đều có nhiều kiến thức tích hợp về loại và không cần trợ giúp từ System.Boolean. Các khai báo trong mscorlib cho các loại giá trị nguyên thủy khớp với biểu diễn đóng hộp của loại.