类型(Types)

前言

C#、Go等语言的类型介绍


C#

值类型

C# 提供以下内置值类型,也称为“简单类型”:

  • 整型数值类型
  • 浮点型数值类型
  • bool,表示布尔值
  • char,表示 Unicode UTF-16 字符
  • enum,枚举类型
  • struct,结构类型
  • Tuple,元组类型
  • 可为null的值类型
C# 类型/关键字 范围 大小 .NET 类型
bool true 或 false System.Boolean
sbyte -128 到 127 8 位带符号整数 System.SByte
byte 0 到 255 无符号的 8 位整数 System.Byte
short -32,768 到 32,767 有符号 16 位整数 System.Int16
ushort 0 到 65,535 无符号 16 位整数 System.UInt16
int -2,147,483,648 到 2,147,483,647 带符号的 32 位整数 System.Int32
uint 0 到 4,294,967,295 无符号的 32 位整数 System.UInt32
long -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 64 位带符号整数 System.Int64
ulong 0 到 18,446,744,073,709,551,615 无符号 64 位整数 System.UInt64
nint 取决于(在运行时计算的)平台 带符号的 32 位或 64 位整数 System.IntPtr
nuint 取决于(在运行时计算的)平台 无符号的 32 位或 64 位整数 System.UIntPtr
float ±1.5 x 10^−45^ 至 ±3.4 x 10^38^,精度大约 6-9 位数字 4 个字节 System.Single
double ±5.0 × 10^−324^ 到 ±1.7 × 10^308^,精度大约 15-17 位数字 8 个字节 System.Double
decimal ±1.0 x 10^-28^ 至 ±7.9228 x 10^28^,精度28-29 位 16 个字节 System.Decimal
char U+0000 到 U+FFFF 16 位 System.Char

引用类型

声明引用类型

  • class
  • interface
  • delegate
  • record

内置引用类型

  • dynamic, System.Object
  • object, System.Object
  • string, System.String

默认值

类型 默认值
任何引用类型 null
任何内置整数数值类型 0(零)
任何内置浮点型数值类型 0(零)
bool false
char ‘\0’ (U + 0000)
enum 表达式 (E)0 生成的值,其中 E 是枚举标识符。
struct 通过如下设置生成的值:将所有值类型的字段设置为其默认值,将所有引用类型的字段设置为 null。
任何可以为 null 的值类型 HasValue 属性为 false 且 Value 属性未定义的实例。 该默认值也称为可以为 null 的值类型的“null” 值。

Go

值类型

  • Boolean types
  • Numeric types
  • String types
  • Array types
  • Struct types
Numeric types Range
uint8 the set of all unsigned 8-bit integers (0 to 255)
uint16 the set of all unsigned 16-bit integers (0 to 65535)
uint32 the set of all unsigned 32-bit integers (0 to 4294967295)
uint64 the set of all unsigned 64-bit integers (0 to 18446744073709551615)
int8 the set of all signed 8-bit integers (-128 to 127)
int16 the set of all signed 16-bit integers (-32768 to 32767)
int32 the set of all signed 32-bit integers (-2147483648 to 2147483647)
int64 the set of all signed 64-bit integers (-9223372036854775808 to 9223372036854775807)
float32 the set of all IEEE-754 32-bit floating-point numbers
float64 the set of all IEEE-754 64-bit floating-point numbers
complex64 the set of all complex numbers with float32 real and imaginary parts
complex128 the set of all complex numbers with float64 real and imaginary parts
byte alias for uint8
rune alias for int32

引用类型

  • Slice types
  • Pointer types
  • Function types
  • Interface types
  • Map types
  • Channel types

后记

Markdown中如何输入上标、下标?

示例 Markdown代码
X^2^ X^2^
X0 X~0~