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

  • 相关阅读:
    [模板] 循环数组的最大子段和
    [最短路][几何][牛客] [国庆集训派对1]-L-New Game
    [洛谷] P1866 编号
    1115 Counting Nodes in a BST (30 分)
    1106 Lowest Price in Supply Chain (25 分)
    1094 The Largest Generation (25 分)
    1090 Highest Price in Supply Chain (25 分)
    树的遍历
    1086 Tree Traversals Again (25 分)
    1079 Total Sales of Supply Chain (25 分 树
  • 原文地址:https://www.cnblogs.com/Allofus/p/10215420.html
Copyright © 2011-2022 走看看