C#笔记【2】

来源:互联网 发布:永久免费域名注册 编辑:程序博客网 时间:2024/06/05 02:18

在C#中,变量分为以下几种类型:

  • 值类型

  • 引用类型

  • 指针类型

值类型

值类型变量可以直接赋值。它们衍生自类System.ValueType。

值类型直接包含的数据。一些实例是整数,字符,浮点数,其存储的数字,字母,浮点数,分别。当声明一个int类型,系统分配内存来存储值。

下表列出了在C#2010可用值的类型:

类型表示范围默认值bool布尔值True 或 FalseFalsebyte8-bit 无符号整数0 - 2550char16-bit Unicode字符U +0000 到 U +ffff'\0'decimal128-bit 使用28-29显著数字精确十进制值(-7.9 x 1028 到 7.9 x 1028) / 100 - 280.0Mdouble64-bit 双精度浮点类型(+/-)5.0 x 10-324  到 (+/-)1.7 x 103080.0Dfloat32-bit 单精度浮点类型-3.4 x 1038  到 + 3.4 x 10380.0Fint32-bit 符号整型-2,147,483,648  到 2,147,483,6470long64-bit 符号整型-923,372,036,854,775,808 到 9,223,372,036,854,775,8070Lsbyte8-bit 符号整型-128 到 1270short16-bit 符号整型-32,768 to 32,7670uint32-bit 无符号整型0 到 4,294,967,2950ulong64-bit 无符号整型0 到 18,446,744,073,709,551,6150ushort16-bit 无符号整型0 到 65,5350

要获取一个类型或在特定平台上的变量的确切大小,可以使用sizeof方法。表达式sizeof(type) 得到以字节为单位的对象或类型的存储大小。下面是一个例子来得到任何机器上的int类型的大小:

namespace DataTypeApplication{   class Program   {      static void Main(string[] args)      {         Console.WriteLine("Size of int: {0}", sizeof(int));         Console.ReadLine();      }   }}

让我们编译和运行上面的程序,这将产生以下结果:

Size of int: 4

引用类型

引用类型不包含存储在变量的实际的数据,但它们包含一个引用的变量。

换句话说,它们是指一个存储器位置。使用一个以上的变量,则该引用类型可以指内存位置。如果在存储器位置中的数据由变量之一改变时,其他变量自动反映这一变化值。内置引用类型的例子是:对象,动态和字符串。

对象类型

对象类型是在C#通用类型系统(CTS)的所有数据类型的最终基类。对象是System.Object类的一个别名。所以,对象类型可以分配的任何其他类型的,值类型,引用类型,预定义或用户定义类型的值。然而,赋值之前,它需要类型转换。

当值类型被转换为对象的类型,它被称为装箱和在另一方面,当一个对象类型转换为一个值的类型,它被称为拆箱。

object obj;obj = 100; // this is boxing

动态类型

可以存储任何类型的值在动态数据类型的变量中。类型检查这些类型的变量发生在运行时。

声明动态类型的语法是:

dynamic <variable_name> = value;

例如,

dynamic d = 20;

动态类型类似于对象除了对象类型变量的类型检查的类型发生在编译的时候,而对于动态类型的变量发生在运行时。

字符串类型

字符串类型,可以指定任何字符串值的变量。字符串类型是System.String类的别名。它是从对象类型派生。一个字符串类型的值可以以两种形式使用字符串分配:引用和@引用。

例如,

String str = "Yiibai Yiibai";

一个@引用字符串的样子:

@"Yiibai Yiibai";

用户定义的参考类型是:类,接口,或委托。我们将在后面的章节中讨论这些类型。

指针类型

指针类型变量存储的另一类型的存储器地址。在C#中的指针都具有相同的功能,用C或C++。

声明指针类型的语法是:

type* identifier;

例如,

char* cptr;int* iptr;
原创粉丝点击