C# 是一种强类型语言。在变量中存储值之前,必须指定变量的类型,如以下示例所示:
int a = 1; string s = "Hello"; XmlDocument tempDocument = new XmlDocument(); |
注意,对于简单的内置类型(如 int)以及复杂的或自定义的类型(如 XmlDocument)都必须指定类型。
C# 包括对下面的内置数据类型的支持:
数据类型 | 范围 |
---|---|
byte | 0 .. 255 |
sbyte | -128 .. 127 |
short | -32,768 .. 32,767 |
ushort | 0 .. 65,535 |
int | -2,147,483,648 .. 2,147,483,647 |
uint | 0 .. 4,294,967,295 |
long | -9,223,372,036,854,775,808 .. 9,223,372,036,854,775,807 |
ulong | 0 .. 18,446,744,073,709,551,615 |
float | -3.402823e38 ..3.402823e38 |
double | -1.79769313486232e308 ..1.79769313486232e308 |
decimal | -79228162514264337593543950335 .. 79228162514264337593543950335 |
char | 一个 Unicode 字符。 |
string | Unicode 字符的一个字符串。 |
bool | True 或 False。 |
object | 一个对象。 |
这些数据类型名称为 System 命名空间中的预定义类型的别名。内置类型表(C# 参考)节中列出了这些类型。所有这些类型(除对象和字符串以外)均为值类型。
使用内置数据类型
内置数据类型在 C# 程序中有几种用法。
作为变量:
C# | 复制代码 |
---|---|
int answer = 42; string greeting = "Hello, World!"; |
作为常数:
C# | 复制代码 |
---|---|
const int speedLimit = 55; const double pi = 3.14159265358979323846264338327950; |
作为返回值和参数:
C# | 复制代码 |
---|---|
long CalculateSum(int a, int b) { long result = a + b; return result; } |
若要定义自己的数据类型,请使用、或。
转换数据类型
数据类型间的转换可以隐式完成(转换由编译器自动完成)或使用强制转换显式完成(程序员强制进行转换,并承担丢失信息的风险)。
例如:
C# | 复制代码 |
---|---|
int i = 0; double d = 0; i = 10; d = i; // An implicit conversion d = 3.5; i = (int) d; // An explicit conversion, or "cast" |