zhcn 编程语言 Golang Go 文件处理 非公開: C# 数据类型

C# 数据类型

C# 语言包含多种基本数据类型。数据类型用于指定可以存储在程序内变量中的数据类型。 C# 数据类型大致可分为三类:

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

值类型

C# 值类型派生自 System.ValueType 类,您可以直接将特定值分配给值类型变量。当声明值类型变量时,系统会自动分配内存空间来存储变量的值,但请注意,变量占用的内存量根据您的系统而有所不同。

C# 有多种值类型,如下表所示。

类型解释范围默认
bool布尔值对或错False
byte 8 位无符号整数0-255 0
char 16 位 Unicode 字符U+0000 ~ U+ffff ‘\0’
decimal 128 位精确十进制值,有效数字为 28 至 29 位(-7.9×10 28 ~ 7.9×10 28 ) / 10 0 ~ 28 0.0M
double 64位双精度浮点(+/-)5.0 x 10 -324 ~ (+/-)1.7 x 10 308 0.0D
float 32位单精度浮点-3.4×10 38至 +3.4×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 方法。示例代码如下。

 using System;

namespace it-kiso.com{
    class Program {
        static void Main(string[] args) {
            Console.WriteLine("int型のサイズは: {0}", sizeof(int));
            Console.ReadLine();
        }
    }
} 

编译并运行上面的代码,结果为:

int 型のサイズは: 4

参考类型

引用类型变量不存储实际的数据值,而是存储对数据(对象)的引用,即数据在内存中的位置。如果多个变量引用同一个内存地址,如果任何一个变量改变了内存中数据的值,则引用该内存地址的所有变量的值都会改变。 C# 中的内置引用类型包括 Object、Dynamic 和 string。

1)对象类型(对象)

对象类型是 C# 通用类型系统 (CTS) 中所有数据类型的最终基类,Object 是 System.Object 类的别名。对象类型可以被赋予任何类型的值,但是在赋值之前需要进行类型转换。

将值类型转换为对象类型的过程称为“装箱”,将对象类型转换为值类型的过程称为“拆箱”。请注意,只有装箱数据才能取消装箱。

2) 动态型

动态类型变量可以存储任何类型的值,并且在程序执行期间检查它们的类型。动态类型的声明语法为:

dynamic <variable_name> = value;

例如:

dynamic d = 20;

动态类型与对象类型类似,但对象类型变量在编译时进行类型检查,而动态类型变量在程序运行时进行类型检查。

3)字符串类型(String)

字符串类型变量允许您将字符串分配给该变量。字符串类型必须通过 String 类创建。 String类是System.String类的别名,它派生自Object(对象)类型。 。 C#中有两种定义字符串类型的方法,分别使用" "@" "

示例代码如下。

String str = “https://it-kiso.com/”;
@”https://it-kiso.com/”;

@" "形式声明的字符串称为“逐字字符串”,逐字字符串将转义字符\视为普通字符。例如, string str = @"C:\Windows";相当于: string str = "C:\\Windows";

此外,可以在以@" "形式声明的字符串中任意使用换行符,并且换行符和缩进空格也计入字符串的长度。

指针类型

C# 语言中的指针是一个变量,也称为定位器或指示符,可以存储另一种类型的内存地址。 C# 中的指针与 C 或 C++ 中的指针具有相同的功能。

指针类型的声明语法为:

type* identifier;

例如:

char* cptr;
int* iptr;

这里对指针的简单理解就足够了。这将在后面的章节中详细解释。

通俗易懂的《C#数据类型》讲解!您必须观看的最佳 2 个视频

型変換 – C# 最速マスター
https://www.youtube.com/watch?v=nSgOcNoiHvQ&pp=ygUYIEMj44Gu44OH44O844K_5Z6LJmhsPUpB
[Khóa học lập trình #C#_nâng_cao] – Bài 8: #Generic trong C# | HowKteam
https://www.youtube.com/watch?v=RXjdrd-8wuA&pp=ygUYIEMj44Gu44OH44O844K_5Z6LJmhsPUpB
C# 语言包含多种基本数据类型。数据类型用于指定可以存储在程序内变量中的数据类型。 C# 数据类型大致可分为三类:

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

值类型

C# 值类型派生自 System.ValueType 类,您可以直接将特定值分配给值类型变量。当声明值类型变量时,系统会自动分配内存空间来存储变量的值,但请注意,变量占用的内存量根据您的系统而有所不同。

C# 有多种值类型,如下表所示。

类型解释范围默认
bool布尔值对或错False
byte 8 位无符号整数0-255 0
char 16 位 Unicode 字符U+0000 ~ U+ffff ‘\0’
decimal 128 位精确十进制值,有效数字为 28 至 29 位(-7.9×10 28 ~ 7.9×10 28 ) / 10 0 ~ 28 0.0M
double 64位双精度浮点(+/-)5.0 x 10 -324 ~ (+/-)1.7 x 10 308 0.0D
float 32位单精度浮点-3.4×10 38至 +3.4×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 方法。示例代码如下。

 using System;

namespace it-kiso.com{
    class Program {
        static void Main(string[] args) {
            Console.WriteLine("int型のサイズは: {0}", sizeof(int));
            Console.ReadLine();
        }
    }
} 

编译并运行上面的代码,结果为:

int 型のサイズは: 4

参考类型

引用类型变量不存储实际的数据值,而是存储对数据(对象)的引用,即数据在内存中的位置。如果多个变量引用同一个内存地址,如果任何一个变量改变了内存中数据的值,则引用该内存地址的所有变量的值都会改变。 C# 中的内置引用类型包括 Object、Dynamic 和 string。

1)对象类型(对象)

对象类型是 C# 通用类型系统 (CTS) 中所有数据类型的最终基类,Object 是 System.Object 类的别名。对象类型可以被赋予任何类型的值,但是在赋值之前需要进行类型转换。

将值类型转换为对象类型的过程称为“装箱”,将对象类型转换为值类型的过程称为“拆箱”。请注意,只有装箱数据才能取消装箱。

2) 动态型

动态类型变量可以存储任何类型的值,并且在程序执行期间检查它们的类型。动态类型的声明语法为:

dynamic <variable_name> = value;

例如:

dynamic d = 20;

动态类型与对象类型类似,但对象类型变量在编译时进行类型检查,而动态类型变量在程序运行时进行类型检查。

3)字符串类型(String)

字符串类型变量允许您将字符串分配给该变量。字符串类型必须通过 String 类创建。 String类是System.String类的别名,它派生自Object(对象)类型。 。 C#中有两种定义字符串类型的方法,分别使用" "@" "

示例代码如下。

String str = “https://it-kiso.com/”;
@”https://it-kiso.com/”;

@" "形式声明的字符串称为“逐字字符串”,逐字字符串将转义字符\视为普通字符。例如, string str = @"C:\Windows";相当于: string str = "C:\\Windows";

此外,可以在以@" "形式声明的字符串中任意使用换行符,并且换行符和缩进空格也计入字符串的长度。

指针类型

C# 语言中的指针是一个变量,也称为定位器或指示符,可以存储另一种类型的内存地址。 C# 中的指针与 C 或 C++ 中的指针具有相同的功能。

指针类型的声明语法为:

type* identifier;

例如:

char* cptr;
int* iptr;

这里对指针的简单理解就足够了。这将在后面的章节中详细解释。

通俗易懂的《C#数据类型》讲解!您必须观看的最佳 2 个视频

型変換 – C# 最速マスター
https://www.youtube.com/watch?v=nSgOcNoiHvQ&pp=ygUYIEMj44Gu44OH44O844K_5Z6LJmhsPUpB
[Khóa học lập trình #C#_nâng_cao] – Bài 8: #Generic trong C# | HowKteam
https://www.youtube.com/watch?v=RXjdrd-8wuA&pp=ygUYIEMj44Gu44OH44O844K_5Z6LJmhsPUpB