数据类型指定变量可以存储的数据的类型,如:整数,浮点,字符等。

 C# 语言中有3种类型的数据类型。如下表中所示 - 
| 类型 | 数据类型 | 
|---|---|
| 值数据类型 | int,char,float,Boolean等 | 
| 引用数据类型 | 字符串,类,对象和接口 | 
| 指针数据类型 | 指针 | 
值数据类型
值数据类型是基于整数和基于浮点数。 C# 语言支持有符号和无符号文字值。
C# 语言中有两种类型的值数据类型。
- 预定义的数据类型 - 如整型,布尔型,浮点型等
- 用户定义的数据类型 - 如结构,枚举等
数据类型的内存大小可能会根据32位或64位操作系统而不同。我们来看看值数据类型。它的大小根据32位操作系统给出。
| 数据类型 | 内存大小 | 范围 | 
|---|---|---|
| char | 1 byte | -128 to 127 | 
| signed char | 1 byte | -128 to 127 | 
| unsigned char | 1 byte | 0 to 127 | 
| short | 2 byte | -32,768 to 32,767 | 
| signed short | 2 byte | -32,768 to 32,767 | 
| unsigned short | 2 byte | 0 to 32,767 | 
| int | 2 byte | -32,768 to 32,767 | 
| signed int | 2 byte | -32,768 to 32,767 | 
| unsigned int | 2 byte | 0 to 32,767 | 
| short int | 2 byte | -32,768 to 32,767 | 
| signed short int | 2 byte | -32,768 to 32,767 | 
| unsigned short int | 2 byte | 0 to 32,767 | 
| long int | 4 byte | |
| signed long int | 4 byte | |
| unsigned long int | 4 byte | |
| float | 4 byte | |
| double | 8 byte | |
| long double | 10 byte | - | 
要在特定平台上获取类型或变量的确切大小,可以使用sizeof方法。 表达式sizeof(type)产生对象或类型的存储大小(以字节为单位)。以下是在任何机器上获取double类型的大小的示例:
using System;
namespace DataTypeApplication
{
   class Program 
   {
      static void Main(string[] args)
      {
         Console.WriteLine("Size of double: {0}", sizeof(double));
         Console.ReadLine();
      }
   }
}
当编译和执行上述代码时,会产生以下结果:
Size of double: 8
引用数据类型
引用数据类型不包含存储在变量中的实际数据,但它们包含对变量的引用。如果一个变量的数据值被更改,则这个变量将自动反映该值的变化。
C# 语言中有两种类型的引用数据类型。
- 预定义类型 - 如对象,字符串。
- 用户定义的类型 - 如类,接口。
内置引用类型的示例有:object,dynamic和string。
对象类型
对象类型是 C# 通用类型系统(CTS)中所有数据类型的最终基类。
当一个值类型转换为对象类型时,它被称为装箱,另一方面,当对象类型转换为值类型时,称为拆箱。
object obj;
obj = 100; // this is boxing
动态类型
可以在动态数据类型变量中存储任何类型的值。这些类型的变量的类型检查在运行时进行。
声明动态类型的语法是:
dynamic <variable_name> = value;
例如,
dynamic d = 20;
字符串类型
字符串类型允许为变量分配任何字符串值。String类型是System.String类的别名。 它是从Object类型派生的。可以使用两种形式的字符串文字来分配字符串类型的值:quoted和@quoted。
示例
String str = "zaixian Point";
@quoted字符串文字如下所示:
String str = "zaixian Point";
指针数据类型
C# 语言中的指针是变量,也称为定位符或指示符,指向值的地址。

指针中使用的符号
| 符号 | 名称 | 说明 | 
|---|---|---|
| & | 地址运算符 | 获取变量的地址 | 
| * | 间接运算符 | 访问地址的值 | 
声明一个指针
 C# 语言中的指针可以使用*(星号符号)声明。
int * a;  //pointer to int      
char * c; //pointer to char
