• 1. 基础类型


    System.IComparable

    int CompareTo(object obj);
    

    System.IComparable

    int CompareTo(T obj);
    

    System.IEquatable

    bool Equals(T other)
    

    System.IConvertible

    TypeCode GetTypeCode();
    bool ToBoolean(IFormatProvider provider);
    char ToChar(IFormatProvider provider);
    sbyte ToSByte(IFormatProvider provider);
    byte ToByte(IFormatProvider provider);
    short ToInt16(IFormatProvider provider);
    ushort ToUInt16(IFormatProvider provider);
    int ToInt32(IFormatProvider provider);
    uint ToUInt32(IFormatProvider provider);
    long ToInt64(IFormatProvider provider);
    ulong ToUInt64(IFormatProvider provider);
    float ToSingle(IFormatProvider provider);
    double ToDouble(IFormatProvider provider);
    Decimal ToDecimal(IFormatProvider provider);
    DateTime ToDateTime(IFormatProvider provider);
    String ToString(IFormatProvider provider);
    Object ToType(Type conversionType, IFormatProvider provider);
    

    Boolean :IComparable,IConvertible,IComparable,IEquatable

    内部使用  bool m_value
    
    然后维护了=1,=0 两个字段
    维护了 "True","False" 的两个字段
    
    Parse()
    TryParse()
    

    Char: IComparable,IConvertible,IComparable,IEquatable

    内部使用 char m_value  来存值
    
    maxvalue=oxffff;  //65535 两个字节,所以足够保存unicode了,这是为了简化unicode的操作的设计,所以char能够方便的保存汉字等unicode字符
    minvalue=0
    isxxxx()   //很多isxxx的方法
    

    SByte: IComparable,IFormattable,IConvertible,IComparable,IEquatable

    内部使用 sbyte m_value
    
    MaxValue 0x7f;  //127 一个字节
    MinValue = unchecked((sbyte)0x80); //注意sbyte的强制转换  -127
    
    Parse()  居然是用的是Number.Parse32() 然后判断范围后直接转sbyte
    Tryparse() -> Number.TryParse32()
    

    Byte:IComparable,IFormattable,IConvertible

    与sbyte的区别是只表示1个字节的正值
    
    内部使用 byte m_value  来存值
    
    maxvalue=oxff;  //255 一个字节
    minvalue=0
    

    short Int16 :

    short m_value;
    
    MaxValue = 0x7fff; //32767 两个字节
    MinValue = unchecked((short)0x8000)  //注意short的转化,所以不是正的,而是-32768
    

    ushort UInt16:

    ushort m_value
    MaxValue = 0xffff; //65535;
    minValue = 0;
    

    Int32

    int m_value
    
    MaxValue = 0x7fffffff;//21.47亿 4个字节
    Minvlaue = unchecked((int)ox8000000); //-21.47亿 
    

    UInt32

    uint m_value;
    
    MaxValue = 0xffffffff;
    MinValue = 0U;
    

    Int64

    long m_value;
    
    MaxValue = ox 7fff,ffff,ffff,ffff; //2^63-1 8字节
    MinValue = unchecked(long(ox8000,0000,0000,0000)); // -2^63
    

    UInt64

    ulong m_value;
    
    MaxValue = ox ffff,ffff,ffff,ffff; //2^64-1 8字节
    MinValue = ox0;
    

    Single: IComparable,IFormattable,IConvertible

    4字节, 7位精度
    float m_vlaue;
    
    MinValue = (float)-3.40282346638528859e+38
    MaxValue = (float)3.40282346638528859e+38;
    

    sizeof 计算非托管类型

    计算比如基元类型,所有的struct
    sizeof(float);      //4
    sizeof(double);     //8
    sizeof(decimal);    //16
    sizeof(TypeCode);   //4
    sizeof(CustEnum);   //4 自定义枚举
    

    Double

    8字节,15-16 位精度
    MaxValue = 1.7976931348623157E+308
    MinValue = -1.7976931348623157E+308
    

    Decimal

    16字节,28-29 位精度
    MaxValue = 79228162514264337593543950335m;
    MinValue = -79228162514264337593543950335m;
    这就是
  • 相关阅读:
    composer 基本概念与常用命令总结
    慕课笔记-JavaScript正则表达式
    [网络编程]epoll的基础用法
    [C++学习笔记] const限定符
    boost库常用功能
    kafka C客户端librdkafka producer源码分析
    kafka 0.8.1 新producer 源码简单分析
    第一篇博客
    Jmeter连接数据库
    Jmeter录制APP脚本
  • 原文地址:https://www.cnblogs.com/zhangrCsharp/p/7695536.html
Copyright © 2020-2023  润新知