C#基础--之数据类型

    技术2022-05-18  15

    C#基础--之数据类型

       在第一章我们了解了C#的输入、输出语句后,我这一节主要是介绍C#的基础知识,本节的内容也是后续章节的基础,好的开端等于成功的一半。在你阅读完本章后,你就有足够的C#知识编写简单的程序了。但还不能使用继承或其它面向对象的特征。

       本章主要针对以下几个部份来进行讲解:

       1、电脑是由什么来存储所使用的数据?

       2、基本数据类型有哪些?

       3、如何声明变量和赋值?

       4、变量和常量的区别?

       5、不同数据类型之间是如何转换的?

       下面,我们现一个一个的来了解这些问题。

      

        一、电脑是由什么来存储所使用的数据?

          这个问题用一句话比较笼统的概括,那就是:电脑使用内存来记忆计算时所使用的数据。

          在现实生活中的数据各种各样,整数、小数、字符串、字符等等,它们都类型是不一样的,所以你要想在计算机中使用这些类型,就必须在内存中为它申请一块合适的空间。

         那有哪些数据类型是C#能使用的呢?我们一起来看一看.

        

          二、基础数据类型有哪些

          首先要了解一点:C#认可的基础数据类型并没有内置于C#语言中,而是内置于.net Framework中。

          如,在c#中声明一个int类型的数据时,声明的实际上是.net结构System.Int32的一个实例。这听起来似乎很深奥,但其意义深远:这表示在语法上,可以把所有的基础数据类型看作是支持某些方法的类。

         类型实际上仍存储为基本类型。基本类型在概念上用.Net结构表示,所以肯定没有性能损失。

         下面大家一起来了解一下C#中定义的内置类型,我们将列出每个类型,以及它们的定义和对应的.net类型(CTS类型)的名称。

          c#有15个预定义类型,其中13个是值类型,两个是引用类型(string 和 object)

     

     

     

        1、整型

     

       2、浮点类型

     

        float数据类型用于较小的浮点数,因为它要求的精度较低。

        double数据类型比float数据类型大,提供的精度也大一倍(15位)。

        如果在代码中没有对某个非整数值(如12.3)硬编码,则编译器一般假定该变量是double。

        如果想指定该值为float,可以在其后加上字符F(或f),如:

             float f = 12.3F;

     

     3、decimal类型

     

        decimal类型专门用于进行财务计算,使用decimal类型提供的28位的方式取决于用户。

        要把数字指定为decimal类型,可以在数字的后面加上字符M或(m),如:

        decimal d=12.30M;

     

        4、bool(布尔)类型

     

     

        5、char字符类型

         char类型的字变量是用单引号括起来的。     如'A'

         如果把字符把在"A"(双引号)内,编译器会把它看作是字符串,从而产生错误。

     

        6、引用类型(Object类型和字符串类型)

     

     三、如何声明变量和赋值

       1、变量的定义:是指在程序的运行过程中随时可以发生变化的量

        2、上面我们提到,变量在运行时当中是存在内存当中的,它是一个临时的存放场所。

             那么在内存当中,可以存放如数字、字符串、日期等等各种类型的数据。

     

    大家可以看一看这张图,它就把表示内存当中的一个状态。

     

    简单的来说,变量就是表示内存当中的一块存储区域。

     

    它会对应一个唯一的内存地址,但是我们在使用程序当时候,内存地址不好理解也不好记忆。

    那么怎么办呢?

     

    在日常生活当中我们都有一个名字,如"张三“、”李四“等,这些名字就是为了便于记忆。

    那么同样,在程序当中,为了区别多个变量,那就需要为每个变量赋值一个简短,便于记忆的名字,

    这就是变量名。

     

         3、 C#中的变量的命名是是有规则的:

             1)、由字母、数字或下划线"_"组成

             2)、必须由字母下划线"_"开头,不能以数字开头

             3)、不能是c#中的关键字 如:int、string、bool、Main、class等 

             4)、区分大小写  如:小写的a  和  大写的A 是两个变量

         

          4、做为一个比较好的学习者,就必须遵守一些变量命名规范:

               1)、变量的名字要有意义,尽量用对应的英语命名,具有“见名知意“的作用。

                      如:姓名   变量取名为 name 或者 用拼单  xingMing,避免用a,b,c来进行命名。

               2)、避免使用单个字符作为变量名( 除在循环里面定的变量)

               3)、当使用多个单词组成变量名时,应该使用骆驼(Camel)命名法

                       骆驼(Camel)命名法:第一个单词的首字母小写,其它单词的首字母大写,如:myName,myAge

               

              选择题:以下变量命名正确的是(     )

                      A、name、 _222*1、 9class、 public

                      B、_teacher、 void、 string、 myName

                      C、$Age、 corss、 fire、 _grade

                      D、_glass、 g23、 c_12、 my_first_2

     

     

          5、变量的声明和赋值

              1)定义变量的语法:

                数据类型    变量名;      (定义一个年龄的变量,年龄是整数,所以变量定义如下:)

                  int          age;         [系统会根据数据类型,在内存中分配不同大小的存储空间]

     

                 每个数据类型后面,可以定义多个变量,如:(定义姓名、家庭地址、籍贯、民族)

                    string name,address,origin,national ;

                

               2)为变量赋值语法:

                   变量名 = 值;           

                  (这里的=号表示赋值运算符,把=号右边的值,赋值给左边的变量名,最后以一个;[分号]结束)

                   如:年龄18岁,姓名为“小张",家庭地址为“重庆南坪XXX",

                          籍贯为“重庆",民族为“汉"

                    age = 18 ;

                    name = "小张" ;

                    address = "重庆南坪XXX" ;

                    origin = "重庆" ;

                    national = "" ;

     

     四、变量和常量的区别

             变量:是指在程序的运行过程中随时可以发生变化的量

            常量:是指在程序在运行过程中不会发生变化的变量

             

              常量的特点:

                       1、必须在声明是赋值

                       2、不能在在程序运行时,给常量赋值

                       3、常量是静态的。不必须(实际上,是不允许)在常量声明中包含修饰符static 

            

     五、不同数据类型之间是如何转换的

           在C#中数据类型转换分为两种:1)隐式[又叫自动]类型转换     2)显式[又叫强制]类型转换

               举个简单例子:

               飞机场里面停飞机,这是理所当然,我们把这种叫做隐式[又叫自动]类型转换

       

               那如果我们反过来看一看,飞机里面装飞机场,这个在我们实际生活中,觉得这是根据不可能的,

               但是程序可能做到这一点,我们把这种叫做显式[又叫强制]类型转换

     

           在C#中数据类型转换分为两种:1)隐式[又叫自动]类型转换     2)显式[又叫强制]类型转换

     

     

    简称 .NET 类 类型 宽度 范围(位)

    byte

    Byte

    无符号整数

    8

    0 到 255

    sbyte

    SByte

    有符号整数

    8

    -128 到 127

    int

    Int32

    有符号整数

    32

    -2,147,483,648 到 2,147,483,647

    uint

    UInt32

    无符号整数

    32

    0 到 4294967295

    short

    Int16

    有符号整数

    16

    -32,768 到 32,767

    ushort

    UInt16

    无符号整数

    16

    0 到 65535

    long

    Int64

    有符号整数

    64

    -922337203685477508 到 922337203685477507

    ulong

    UInt64

    无符号整数

    64

    0 到 18446744073709551615

    float

    Single

    单精度浮点型

    32

    -3.402823e38 至 3.402823e38

    double

    Double

    双精度浮点型

    64

    -1.79769313486232e308 至 1.79769313486232e308

    char

    Char

    单 Unicode 字符

    16

    文本中使用的 Unicode 符号

    bool

    Boolean

    逻辑布尔值类型

    8

    True 或 False

    object

    Object

    所有其他类型的基类型

     

     

    string

    String

    字符序列

     

     

    decimal

    Decimal

    精确小数类型或整型,可以表示带有 29 个有效位的十进制数

    128

    ±1.0 × 10e−28 至 ±7.9 × 10e28

     

     

    {转}SQL SERVER数据类型与C#数据类型对照表 2009-03-16 23:12

     SQL SERVER类型 C#类型精确数字bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。Int64int从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。Int32smallint

    从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。

    Int16tinyint

    从 0 到 255 的整型数据。存储大小为 1 字节。

    System.Bytebit

    1 或 0 的整数数据。

    Booleandecimal从 -10^38 +1 到 10^38 –1 的固定精度和小数位的数字数据。System.Decimalnumeric功能上等同于 decimal。System.Decimalmoney

    货币数据值介于 -2^63 (-922,337,203,685,477.5808) 与 2^63 - 1 (+922,337,203,685,477.5807) 之间,精确到货币单位的千分之十。

    System.Decimalsmallmoney

    货币数据值介于 -214,748.3648 与 +214,748.3647 之间,精确到货币单位的千分之十。

    System.Decimal近似数字float

    从 -1.79E + 308 到 1.79E + 308 的浮点精度数字。

    System.Doublereal

    从 -3.40E + 38 到 3.40E + 38 的浮点精度数字。

    System.Single datetime从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确到百分之三秒(或 3.33 毫秒)。System.DateTimesmalldatetime

    从 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间数据,精确到分钟。

    System.DateTime字符串char

    固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。

    Stringvarchar

    可变长度的非 Unicode 数据,最长为 8,000 个字符。

    Stringtext

    可变长度的非 Unicode 数据,最大长度为 2^31 - 1 (2,147,483,647) 个字符。

    StringUnicode 字符串nchar

    固定长度的 Unicode 数据,最大长度为 4,000 个字符。

    Stringnvarchar

    可变长度 Unicode 数据,其最大长度为 4,000 字符。sysname 是系统提供用户定义的数据类型,在功能上等同于 nvarchar(128),用于引用数据库对象名。

    Stringntext

    可变长度 Unicode 数据,其最大长度为 2^30 - 1 (1,073,741,823) 个字符。

    String二进制字符串binary固定长度的二进制数据,其最大长度为 8,000 个字节。System.Byte[]varbinary可变长度的二进制数据,其最大长度为 8,000 个字节。System.Byte[]image

    可变长度的二进制数据,其最大长度为 2^31 - 1 (2,147,483,647) 个字节。

    System.Byte[]其它数据类型timestamp

    数据库范围的唯一数字,每次更新行时也进行更新。

    System.DateTimeuniqueidentifier

    全局唯一标识符 (GUID)。

    System.GuidVariant Object


    最新回复(0)