Csharp 简明教程

C

C# 中的变量被归类为以下类型 −

  1. Value types

  2. Reference types

  3. Pointer types

Value Type

值类型变量可以直接被赋值。它们来自类 * System.ValueType*。

值类型直接包含数据。一些示例是 int, char, and float ,它分别存储数字、字母和浮点数。当你声明一个 int 类型时,系统会分配内存来存储该值。

下表列出了 C# 2010 中可用的值类型 −

Type

Represents

Range

Default Value

bool

Boolean value

True or False

False

byte

8-bit unsigned integer

0 to 255

0

char

16-bit Unicode character

U +0000 到 U +ffff

'\0'

decimal

28-29 位有效数字的 128 位精确十进制值

(-7.9 x 1028 到 7.9 x 1028) / 100 到 28

0.0M

double

64 位双精度浮点数类型

(/-)5.0 x 10-324 到 (/-)1.7 x 10308

0.0D

float

32 位单精度浮点数类型

-3.4 x 1038 到 + 3.4 x 1038

0.0F

int

32-bit signed integer type

-2,147,483,648 to 2,147,483,647

0

long

64-bit signed integer type

-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807

0L

sbyte

8-bit signed integer type

-128 to 127

0

short

16-bit signed integer type

-32,768 to 32,767

0

uint

32-bit unsigned integer type

0 to 4,294,967,295

0

ulong

64-bit unsigned integer type

0 to 18,446,744,073,709,551,615

0

ushort

16-bit unsigned integer type

0 to 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

Reference Type

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

换句话说,它们引用一个内存位置。引用类型可以使用多个变量引用内存位置。如果内存位置中的数据被其中一个变量更改,则另一个变量会自动反映此值更改。 built-in 引用类型的示例包括: objectdynamic,string

Object Type

Object Type 是 C# 公共类型系统 (CTS) 中所有数据类型的终极基类。对象是 System.Object 类的一个别名。对象类型可以被赋值任何其他类型、值类型、引用类型、预定义类型或用户定义类型的值。但是,在赋值之前,它需要类型转换。

当值类型转换为对象类型时,称为 boxing ,另一方面,当对象类型转换为值类型时,称为 unboxing

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

Dynamic Type

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

声明 dynamic 类型的语法是 −

dynamic <variable_name> = value;

例如,

dynamic d = 20;

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

String Type

String Type 允许你将任意字符串值赋予变量。字符串类型是 System.String 类的别名。它源自对象类型。字符串类型的变量的值可以使用两种形式的字符串文字进行赋值:quoted 和 @quoted。

例如,

String str = "Tutorials Point";

@quoted 字符串文字如下所示:

@"Tutorials Point";

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

Pointer Type

指针类型变量存储另一种类型内存地址。C# 中的指针具有与 C 或 C++ 中指针相同的功能。

声明指针类型的语法是:

type* identifier;

例如,

char* cptr;
int* iptr;

我们将在“不安全代码”一章中讨论指针类型。