zoukankan      html  css  js  c++  java
  • C# 几种常用的数据类型

    本文讲到C#的几种常用的数据类型,统共可以分为两类,值类型引用类型

    下面陈列出常用的值类型:

    类型 描述 范围 默认值 内置的类型转换方法
    bool 布尔值 True 或 False False ToBoolean
    char 16位Unicode字符(字符类型) 单个字符   ToChar
    datetime  

    0001/1/1 00:00:00到

    9999/12/31 23:59:59

      ToDateTime
             
    float   32 位单精度浮点型   0.0F ToSingle
    double   64 位双精度浮点型   0.0D ToDouble
    decimal 128 位精确的十进制值,28-29 有效位数   0.0M ToDecimal
             
    byte   8 位无符号整数类型 0 到 255 0 ToByte
    ushort 16 位无符号整数类型 0 到 65,535 0 ToUInt16
    uint 32 位无符号整数类型 0 到 4,294,967,295 0 ToUInt32
    ulong 64 位无符号整数类型 0 到 18,446,744,073,709,551,615 0 ToUInt64
             
    sbyte   8 位有符号整数类型 -128 到 127 0 ToSByte
    short 16 位有符号整数类型 -32,768 到 32,767 0 ToInt16
    int 32 位有符号整数类型 -2,147,483,648 到 2,147,483,647 0 ToInt32
    long 64 位有符号整数类型

    -923,372,036,854,775,808 到

    9,223,372,036,854,775,807

    0L ToInt64

    小结:

    1. float 和 double 的区别:

    float 是单精度类型,精度是 6 位有效数字,占用4个字节的存储空间;

    double 是双精度类型,精度是 15 位有效数字,占用8个字节的存储空间;

    double 精度和范围都更大,运算时间也就更长。所以能用 float 就不用 double

    2. 如果我们在代码中写一个 12.3,编译器会自动认为这个数是个 double 型。所以如果我们想指定 12.3 为 float 类型,那么你必须在数字后面加上 F/f

    float f = 12.3F

    3.decimal 类型具有更高的精度和更小的范围,适合于财务和货币计算。但 decimal 类型不是 C# 的基础类型,所以使用的时候会对计算时的性能有影响。

    引用类型有 Object 和 String:

    对象类型(Object)是 C# 通用类型系统(Common Type System - CTS)中所有数据类型的终极基类

    所以对象类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。但是,在分配值之前,需要先进行类型转换。

    当一个值类型转换为对象类型时,则被称为 装箱;另一方面,当一个对象类型转换为值类型时,则被称为 拆箱

    object obj;
    obj = 100; // 这是装箱,详细:https://www.cnblogs.com/FoxLibrary/p/13861815.html

    小结:

    C# String 字符串的前面可以加 @(称作"逐字字符串")将转义字符()当作普通字符对待,比如:

    string str = @"C:Windows";
    等价于:
    string str = "C:\Windows";

    @ 字符串中可以任意换行,换行符及缩进空格都计算在字符串长度之内。

    string str = @"<script type=""text/javascript"">
        <!--
        -->
    </script>";

     C#的类型转换:

    • 隐式类型转换 - 这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。
    • 显式类型转换 - 显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失

    string转char:

    string str = "abcde";
    
    char chr = str[2]; //结果为b

    注:char用单引号 '男',string用双引号 "周杰"。

    整数类型转换的区别:

    Convert.ToInt32(null) 会返回 0 而不会产生任何异常

    int.Parse(null) 则会产生异常。int.Parse("4.5") ,直接报错:"输入字符串的格式不正确";

    int.TryParse() 其实是对 int.Parse() 做了一个异常处理,如果出现异常则返回 false,并且将输出参数返回 0。

    Convert.ToInt32(double value) 如果 value 为浮点型,采用四舍五入

    int(4.6) = 4,int 转化其他数值类型为 int 时没有四舍五入,强制转换(截取整数部分。

    //这里用null和double类型数据来测试
    int b; double m = 1.232d;  
    bool rlt1 = int.TryParse(null, out b);  //结果:b返回为0,rlt1为false
    bool rlt2 = int.TryParse(m, out b);  //结果:b返回为0,rlt2为false

    位(bit)、字节(byte)、字符之间的关系:

    bit就是位,是表示信息的最小单位,只有两种状态:0 和 1;

    byte就是字节,1 byte = 8 bit;

    1 字符 = 2 字节,一般来说,一个汉字就是一个字符,一个字母或数字就是一个字节。

    注:1KB = 1024 B,这里的B就是字节……

    参考文档:http://www.runoob.com/csharp/csharp-data-types.html

              https://www.cnblogs.com/leolis/p/3968943.html

  • 相关阅读:
    Extjs系列篇(3)—-model数据模型
    js中parseInt()会导致的一些问题
    Extjs系列篇(2)—-初步了解
    一步一步学python(七)
    一步一步学python(六)
    一步一步学python(五) -条件 循环和其他语句
    一步一步学python(四)
    一步一步学python(三)
    MFC socket网络通讯核心代码
    MFC 遍历FTP服务器目录中文乱码问题
  • 原文地址:https://www.cnblogs.com/Allofus/p/10215420.html
Copyright © 2011-2022 走看看