- 注释
/* 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 的值是 |
二元 |
var1 = var2 - var3; |
var1 的值是从 var2 减去var3所得的值 | |
* |
二元 |
var1 = var2 * var3; |
var1 的值是var2 |
/ |
二元 |
var1 = var2 / var3; |
var1 是var2 |
% |
二元 |
var1 = var2 % var3; |
var1 是 |
+ |
一元 |
var1 = +var2; |
var1 的值等于 var2的值 |
一元 |
var1 = -var2; |
var1 的值等于 var2 |
最后2个是一元数学运算符(也就是正负运算符),但是+(一元)运算符不会对结果有影响的,如果var2是-1,那么var1还是-1。
上面的运算符都是使用的简单的数值运算符,不能使用其他的简单运算符(如bool)。但是char变量实际上存储的是数字,所以数学运算符可以使用char。这是一个隐式转换。还有二元运算符(+)可以用于字符串的拼接。
- 递增和递减运算符
运算符 |
类别 |
示例表达式 |
结果 |
++ |
一元 |
var1 = ++var2; |
var1 的值是 var2 + 1. var2 |
-- |
一元 |
var1 = --var2; |
var1 的值是 var2 - 1. var2 |
++ |
一元 |
var1 = var2++; |
var1 的值是 var2. var2 |
-- |
一元 |
var1 = var2--; |
var1 的值是 var2. var2 |
- 赋值运算符
运算符 |
类别 |
示例表达式 |
结果 |
= |
二元 |
var1 = var2; |
var1 被赋予 var2. |
+= |
二元 |
var1 += var2; |
var1 被赋予var1 |
-= |
二元 |
var1 -= var2; |
var1 被赋予var2 |
*= |
二元 |
var1 *= var2; |
var1 被赋予var1 |
/= |
二元 |
var1 /= var2; |
var1 被赋予 |
%= |
二元 |
var1 %= var2; |
var1 被赋予 |
- 运算符的优先级
优先级 |
运算符 |
最高级 |
++, -- (用作前缀); +, - |
*, /, % | |
+, - | |
=, *=, /=, %=, +=, -= | |
最低级 |
++, -- (用作后缀) |
优先级相同的运算符(如*和/)按照从左到右的顺序计算。
括号可以用于重写优先级。
++和--用作后缀运算符的时候,由于其不改变表达式的值,所以可以在概念上认为其优先级最低。
- 命名空间
.NET 应用程序中定义的所有名称,包括变量名,都包含在命名空间中。命名空间采用层次结构,我们通常需要根据包含名称的命名空间来限定名称,以便访问它们
根据约定,命名空间通常采用PascalCase命名方式
using语句可以应用到包含它们的命名空间,以及该命名空间中包含的嵌套命名空间。
using语句本身不能访问另一个命名空间中的名称。除非命名空间中的代码以某种方式链接到项目上,或者代码是在该项目的源文件中定义,或在链接到该项目的其他代码中定义的,否则就不能访问其中包含的名称。