📜  C#-数据类型

📅  最后修改于: 2020-12-28 05:00:04             🧑  作者: Mango


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

  • 值类型
  • 参考类型
  • 指针类型

值类型

值类型变量可以直接分配一个值。它们是从类System.ValueType派生的。

值类型直接包含数据。一些示例是int,char和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 to U +ffff ‘\0’
decimal 128-bit precise decimal values with 28-29 significant digits (-7.9 x 1028 to 7.9 x 1028)
/ 100 to 28
0.0M
double 64-bit double-precision floating point type (+/-)5.0 x 10-324 to (+/-)1.7 x 10308 0.0D
float 32-bit single-precision floating point type -3.4 x 1038 to + 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

参考类型

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

换句话说,它们指的是存储位置。使用多个变量,引用类型可以引用一个内存位置。如果通过一个变量更改了存储位置中的数据,则另一个变量将自动反映该值的更改。内置引用类型的示例包括: objectdynamic字符串

对象类型

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

当值类型转换为对象类型时,称为装箱;另一方面,当对象类型转换为值类型时,则称为拆箱

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

动态类型

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

声明动态类型的语法是-

dynamic  = value;

例如,

dynamic d = 20;

动态类型与对象类型类似,不同之处在于,对对象类型变量的类型检查在编译时进行,而对动态类型变量的类型检查在运行时进行。

字符串类型

字符串类型允许您将任何字符串值分配给变量。字符串类型是System.String类的别名。它是从对象类型派生的。可以使用两种形式的字符串字面量来分配字符串类型的值:带引号和@引号。

例如,

String str = "Tutorials Point";

@quoted字符串字面量如下所示-

@"Tutorials Point";

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

指针类型

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

声明指针类型的语法是-

type* identifier;

例如,

char* cptr;
int* iptr;

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