数据类型

优质
小牛编辑
135浏览
2023-12-01

C#中的变量分为以下类型 -

  • Value types
  • 参考类型
  • 指针类型

值类型

可以直接为值类型变量分配值。 它们派生自System.ValueType类。

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

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

类型代表范围默认值
bool布尔值True or FalseFalse
byte8-bit unsigned integer0到2550
char16-bit Unicode characterU +0000到U + ffff'\0'
decimal128位精确十进制值,28-29位有效数字(-7.9 x 10 28至7.9 x 10 28 )/ 10 0至280.0M
double64位双精度浮点类型(+/-)5.0 x 10 -324到(+/-)1.7 x 10 3080.0D
float32位单精度浮点类型-3.4 x 10 38至+ 3.4 x 10 380.0F
int32-bit signed integer type-2,147,483,648 to 2,147,483,6470
long64-bit signed integer type-9,223,372,036,854,775,808 to 9,223,372,036,854,775,8070L
sbyte8-bit signed integer type-128 to 1270
short16-bit signed integer type-32,768 to 32,7670
uint32-bit unsigned integer type0 to 4,294,967,2950
ulong64-bit unsigned integer type0 to 18,446,744,073,709,551,6150
ushort16-bit unsigned integer type0 to 65,5350

要在特定平台上获取类型或变量的确切大小,可以使用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

参考类型

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

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

对象类型

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

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

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

动态类型

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

声明动态类型的语法是 -

dynamic <variable_name> = value;

例如,

dynamic d = 20;

动态类型与对象类型类似,除了对象类型变量的类型检查在编译时进行,而动态类型变量的类型检查在运行时进行。

字符串类型

String Type允许您将任何字符串值分配给变量。 字符串类型是System.String类的别名。 它源自对象类型。 可以使用两种形式的字符串文字来指定字符串类型的值:quoted和@quoted。

例如,

String str = "IOWIKI";

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

@"IOWIKI";

用户定义的引用类型是:class,interface或delegate。 我们将在后面的章节中讨论这些类型。

指针类型

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

声明指针类型的语法是 -

type* identifier;

例如,

char* cptr;
int* iptr;

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