C# 数据类型

  • C# 数据类型

    C# 中的变量分为以下几种类型:
    • 值类型
    • 引用类型
    • 指针类型
  • 值类型

    值类型变量可以直接分配一个值。它们是从类System.ValueType派生的。
    值类型直接包含数据。一些示例是int,char和float,它们分别存储数字,字母和浮点数。声明int类型时,系统会分配内存以存储值。
    下表列出了C# 2010中的可用值类型-
    类型 说明 范围 默认值
    bool 布尔值 True 或者 False False
    byte 8位无符号整数 0至255 0
    char 16位Unicode字符 U+0000至U+ffff '\0'
    decimal 具有28-29个有效数字的128位精确十进制值 (-7.9 x 1028至7.9 x 1028)/ 10 0至28 0.00M
    double 64位双精度浮点类型 (+/-)5.0×10 -324至(+/-)1.7×10 308 0.0D
    float 32位单精度浮点类型 -3.4 x 10 38至+ 3.4 x 10 38 0.0F
    int 32位有符号整数类型 -2,147,483,648至2,147,483,647 0
    long 64位有符号整数类型 -9,223,372,036,854,775,808至9,223,372,036,854,775,807 0L
    sbyte 8位有符号整数类型 -128至127 0
    short 16位有符号整数类型 -32,768至32,767 0
    uint 32位无符号整数类型 0至4,294,967,295 0
    ulong 64位无符号整数类型 0至18,446,744,073,709,551,615 0
    ushort 16位无符号整数类型 0至65,535 0
    要获取特定平台上类型或变量的确切大小,可以使用sizeof方法。表达式sizeof(type)产生对象或类型的存储大小(以字节为单位)。以下是在任何机器上获取int类型的大小的示例-
    
    using System;
    
    namespace DataTypeApplication {
       class Program {
          static void Main(string[] args) {
             Console.WriteLine("Size of int: {0}", sizeof(int));
             Console.ReadLine();
          }
       }
    }
    
    尝试一下
    编译并执行上述代码后,将产生以下结果-
    
    Size of int: 4
    
  • 引用类型

    引用类型不包含存储在变量中的实际数据,但是它们包含对变量的引用。换句话说,它们指的是存储位置。使用多个变量,引用类型可以引用一个内存位置。如果通过一个变量更改了存储位置中的数据,则另一个变量将自动反映该值的更改。内置引用类型的示例包括:objectdynamicstring
    object 类型
    对象类型是在C# 通用类型系统(CTS)的所有数据类型的最终基类。Object是System.Object类的别名。可以为对象类型分配其他任何类型,值类型,引用类型,预定义或用户定义类型的值。但是,在分配值之前,它需要类型转换。当值类型转换为对象类型时,称为装箱;另一方面,当对象类型转换为值类型时,则称为拆箱。
    
    object obj;
    obj = 100; // this is boxing
    
    dynamic 类型
    您可以在动态数据类型变量中存储任何类型的值。这些类型的变量的类型检查在运行时进行。
    声明 dynamic 类型的语法是-
    
    dynamic <variable_name> = value;
    
    例如,
    
    dynamic d = 20;
    
    dynamic 类型与 object 类型类似,不同之处在于,对 object 类型变量的类型检查在编译时进行,而对 dynamic 类型变量的类型检查在运行时进行。
    string 类型
    string 类型,您可以为任何字符串值分配给一个变量。字符串类型是System.String类的别名。它是从对象类型派生的。可以使用两种形式的字符串文字来分配字符串类型的值:带引号和@引号。
    例如,
    
    String str = "Tutorials Point";
    
    @quoted字符串字面量如下所示-
    
    @"jc2182";
    
    用户定义的引用类型为:接口委托。我们将在后面的章节中讨论这些类型。
  • 指针类型

    指针类型变量存储另一种类型的内存地址。C# 中的指针具有与CC++中的指针相同的功能。
    声明指针类型的语法是-
    
    type* identifier;
    
    例如,
    
    char* cptr;
    int* iptr;
    
    我们将在“不安全代码”一章中讨论指针类型。