public IntegralTypeInfo( Type systemType, IntegralTypeValueRange valueRange, IntegralTypeSize size) { SystemType = systemType; ValueRange = valueRange; Size = size; }
private static IntegralTypeSize 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 IntegralTypeSize( signedness, bits); return(integralTypeSize); }