Exemple #1
0
        public NonIntegralTypeInfo(
            [NotNull] Type systemType,
            [NotNull] NonIntegralTypeValueRange valueRange,
            [NotNull] NonIntegralTypeSizeInfo size) : base(
                systemType)
        {
            valueRange.IsNotNull(nameof(valueRange));
            size.IsNotNull(nameof(size));

            ValueRange = valueRange;
            Size       = size;
        }
Exemple #2
0
        private static NonIntegralTypeSizeInfo buildTypeSize(
            Type systemType)
        {
            var minValue = systemType
                           .GetField(minValueFieldName)
                           .GetValue(null)
                           .To <long>();

            var signedness = minValue == 0
                                ? Signedness.Unsigned
                                : Signedness.Signed;

            var byteSize = Marshal.SizeOf(systemType);
            var bits     = byteSize * 8;

            var integralTypeSize = new NonIntegralTypeSizeInfo(
                signedness,
                bits);

            return(integralTypeSize);
        }