public IntegralTypeInfo( [NotNull] Type systemType, [NotNull] IntegralTypeValueRange valueRange, [NotNull] IntegralTypeSizeInfo size) : base( systemType) { valueRange.IsNotNull(nameof(valueRange)); size.IsNotNull(nameof(size)); ValueRange = valueRange; Size = size; }
private static IntegralTypeSizeInfo 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 IntegralTypeSizeInfo( signedness, bits); return(integralTypeSize); }