首页 > 代码库 > 变量和表达式
变量和表达式
- 注释
/* This is a comment */
/* and so …
… */
// This is a different sort of comment.
/// <summary>
- #region #endregion
- 简单类型
整数类型
sbyte System.Sbyte -2^7 - 2^7-1
byte System.Byte 0 - 2^8-1
short System.Int16 -2^15 - 2^15-1
ushort System.UInt16 0 - 2^16-1
int System.Int32 -2^31 - 2^31-1
uint System.UInt32 0 - 2^32-1
long System.Int64 -2^63 - 2^63-1
ulong System.UInt64 0 - 2^64-1
浮点数类型
float,double,decimal
前二种使用 +/- m * 2^e 的形式存储浮点型
后一种使用 +/- m * 10^e 的形式存储浮点型
decimal适用于金融和货币运算
另外3种简单类型
char System.Char 一个Unicode字符,0-2^16-1
bool System.Boolean 布尔值:true或false
string System.String 一组字符,字符数没有上限,因为它可以使用可变大小的内存
- 变量的命名
变量名的第一个字符必须是字母,下划线或@
其后的字符必须是字母,下划线和数字
不能使用关键字,C#是区分大小写的
在.Net Framework命名空间中有两种命名约定,称为PascalCase和camelCase。前者所有单词的首字母大写,后者第一个单词的首字母小写,其余还是大写。
建议:对于简单的变量,使用camelCase规则,对于比较高级的命名则使用PascalCase。
- 字面值
类型 | 类别 | 后缀 | 示例/允许的值 |
bool | Boolean | None | true or false |
int, uint, long, ulong | Integer | None | 100 |
uint, ulong | Integer | u or U | 100U |
long, ulong | Integer | l or L | 100L |
ulong | Integer | ul, uL, Ul, UL,lu, lU, Lu, or LU | 100UL |
float | Real | f or F | 1.5F |
double | Real | None, d, or D | 1.5 |
decimal | Real | m or M | 1.5M |
char | Character | None | ’a’或转移字符 |
string | String | None | "a . . . a", 可以包括转义字符 |
- 转义字符
转义序列 | 产生的字符 | 字符的Unicode值 |
\’ | 单引号 | 0x0027 |
\" | 双引号 | 0x0022 |
\\ | 反斜杠 | 0x005C |
\0 | 空 | 0x0000 |
\a | 警告(产生蜂鸣) | 0x0007 |
\b | 退格 | 0x0008 |
\f | 换页 | 0x000C |
\n | 换行 | 0x000A |
\r | 回车 | 0x000D |
\t | 水平制表符 | 0x0009 |
\v | 垂直制表符 | 0x000B |
下面的字符串是等价的:
"Karli\’s string."
"Karli\u0027s string."
@"Verbatim string literal."
"C:\\Temp\\MyDir\\MyFile.doc"
@"C:\Temp\MyDir\MyFile.doc"
- 变量的声明
int age;
age = 25;
int age = 25;
int xSize, ySize;
int xSize, ySize = 5;
int xSize = 4, ySize = 5;
- 数学运算符
运算符 | 类别 | 示例表达式 | 结果 |
+ | 二元 | var1 = var2 + var3; | var1 的值是 var2与 var3的和 |
| 二元 | var1 = var2 - var3; | var1 的值是从 var2 减去var3所得的值 |
* | 二元 | var1 = var2 * var3; | var1 的值是var2 与var3的乘积 |
/ | 二元 | var1 = var2 / var3; | var1 是var2 除以 var3所得的值 |
% | 二元 | var1 = var2 % var3; | var1 是 var2 除以 var3所得的余数 |
+ | 一元 | var1 = +var2; | var1 的值等于 var2的值 |
| 一元 | var1 = -var2; | var1 的值等于 var2 的值乘以 -1 |
最后2个是一元数学运算符(也就是正负运算符),但是+(一元)运算符不会对结果有影响的,如果var2是-1,那么var1还是-1。
上面的运算符都是使用的简单的数值运算符,不能使用其他的简单运算符(如bool)。但是char变量实际上存储的是数字,所以数学运算符可以使用char。这是一个隐式转换。还有二元运算符(+)可以用于字符串的拼接。
- 递增和递减运算符
运算符 | 类别 | 示例表达式 | 结果 |
++ | 一元 | var1 = ++var2; | var1 的值是 var2 + 1. var2 递增 1. |
-- | 一元 | var1 = --var2; | var1 的值是 var2 - 1. var2 递减 1. |
++ | 一元 | var1 = var2++; | var1 的值是 var2. var2 递增 1. |
-- | 一元 | var1 = var2--; | var1 的值是 var2. var2 递减 1. |
- 赋值运算符
运算符 | 类别 | 示例表达式 | 结果 |
= | 二元 | var1 = var2; | var1 被赋予 var2. |
+= | 二元 | var1 += var2; | var1 被赋予var1 与 var2的和 |
-= | 二元 | var1 -= var2; | var1 被赋予var2 与 var1的差 |
*= | 二元 | var1 *= var2; | var1 被赋予var1 与 var2的乘积 |
/= | 二元 | var1 /= var2; | var1 被赋予 var1 与 var2相除所得的结果 |
%= | 二元 | var1 %= var2; | var1 被赋予 var1 与 var2相除所得的余数 |
- 运算符的优先级
优先级 | 运算符 |
最高级 | ++, -- (用作前缀); +, - (一元) |
| *, /, % |
| +, - |
| =, *=, /=, %=, +=, -= |
最低级 | ++, -- (用作后缀) |
优先级相同的运算符(如*和/)按照从左到右的顺序计算。
括号可以用于重写优先级。
++和--用作后缀运算符的时候,由于其不改变表达式的值,所以可以在概念上认为其优先级最低。
- 命名空间
.NET 应用程序中定义的所有名称,包括变量名,都包含在命名空间中。命名空间采用层次结构,我们通常需要根据包含名称的命名空间来限定名称,以便访问它们
根据约定,命名空间通常采用PascalCase命名方式
using语句可以应用到包含它们的命名空间,以及该命名空间中包含的嵌套命名空间。
using语句本身不能访问另一个命名空间中的名称。除非命名空间中的代码以某种方式链接到项目上,或者代码是在该项目的源文件中定义,或在链接到该项目的其他代码中定义的,否则就不能访问其中包含的名称。