您的位置:首页 > 编程语言 > C#

2.1 C#基本数据类型

2017-04-06 00:18 513 查看
2.1   C#基本数据类型

2.2   常量和变量

2.3   表达式和运算符

2.4   选择语句

2.5   循环语句

2.6   跳转语句

2.7   数组

       C#中数据类型主要可以分为两种:值类型和引用类型(不包含自定义类型)。 值类型:直接存储值;引用类型:存储的是对值的引用。

 
    首先要了解一点:C#认可的基础数据类型并没有内置于C#语言中,而是内置于.net Framework中。 
    如,在c#中声明一个int类型的数据时,声明的实际上是.net结构System.Int32的一个实例。这听起来似乎很深奥,但其意义深远:这表示在语法上,可以把所有的基础数据类型看作是支持某些方法的类。类型实际上仍存储为基本类型。基本类型在概念上用.Net结构表示,所以肯定没有性能损失。



       1.值类型:

         值类型直接存储数据值,主要包括简单类型和引用类型,其中简单类型主要包括整数类型、浮点类型、布尔类型和字符类型等4种。值类型在 中进行分配,所以效率较高,使用值类型主要是为了提高性能。值类型具有如下特性:

         值类型都是存储在栈中,值类型变量可以直接分配一个值,它们是从类System.ValueType中派生的。

         访问值类型变量时,一般都是直接访问其实例。

         每个值类型变量都有自己的数据副本,对一个值类型的变量操作不会影响其他的变量。

         值类型不能为Null,必须是一个确定的值。

         A   整数类型:

          整数类型代表一种没有小数的整数数值,实际编程中注意取值范围。



          B   浮点类型:

         浮点类型主要用于处理含有小数的数值类型,包含float、double、decimal三种类型。



        如果不做任何设置,系统默认包含小数点的数值为double类型,如果要将数值以float类型来处理,则通过强制使用f或F将其指定为float类型,强制把数值指定为double类型则在后面加d或D,如果将数据强制设置为decimal,则在后面加m或M。

         C  布尔型

         布尔型主要用来表示真/假、TRUE/FALSE值,一个布尔变量,其值只能是TRUE或FALSE,不能将其他的值指定给布尔类型变量,并且布尔类型的值不能与其他类型进行转换。

         D 字符类型

         字符类型用char/Char类来表示,定义字符变量时,只能用单引号引用。``表示一个字符,而“ ”则表示一个字符串。

         特例:\    该字符比较特殊。\ 为“转义字符”。(转义字符为特殊的字符变量,以字符\开头;转义字符后面跟一个或多个字符,具有特定含义,不同于字符原有的含义。)





       bool默认值为false、byte默认值为:0、char默认值为:'\0'、decimal默认值为:0.0M、double默认值为:0.0D、float默认值为:0.0F、int默认值为0、long默认值为:0L、sbyte\short\UINT\ulong\ushort默认值为:0

2. 引用类型

        引用类型不包含存储在变量中的实际数据,但包含存储对值的引用,即它们指的是一个内存位置,使用多个变量时,引用类型可以指向一个内存位置。如果内存位置室友一个变量改变的,其他变量会自动反映到这个值的变化。。

        引用类型变量又称为对象,可存储对实际数据的引用。c#支持两个预定义的引用类型object和string。

        object等价与System.Object,c#中System.Object 是所有类的基类。

        string是特殊的引用类型,但是有个特点是其值一旦初始化后就不可改变。

        字符串string类型是System.String类的别名,他是从对象Object类派生出来的,可以通过两种形式进行分配:引号和@ 引号。

                 如:“C#”、“Name”、string str=@“c:\windows\system32”等价于 string str、= “c:\windows\system32”



3.值类型和引用类型的区别

        值类型直接存储数值,在内存空间中的栈中操作;引用类型存储的是对其值的引用,则是在堆中分配存储单元。

        栈在编译的时候就分配好内存空间,在代码中有栈的明确定义;堆是程序运行中动态分配的内存空间,可以根据程序运行情况动态分配内存空间的大小。因此,值类型总是在内存中占用一个预定义的字节数,而引用类型的变量则在堆中分配一个内存空间,这个内存空间包含的是对另一个内存位置的引用,这个位置是托管堆中的地址,及存放此变量实际值的地方。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: