变量和表达式
C#的基本语法
- C#编译器不考虑代码中的空格,回车符或制表符。
- C#代码由一系列语句组成,每条语句都用一个分号结束。
- C#是一种块结构的语言,所有语句都是代码块的一部分。这些块用(“{”和“}”)来界定。
{
<code line 1, statement 1>;
<code line 2, statement 2>
<code line 3, statement 2>;
}
C#中另一种常见的句式是注释。注释的方法有两种:
- 在代码的开头结尾放置标记,在开头加上/*字符,在结尾加上*/字符。
/* This is a comment */
/* And so....
.... is this*/
- 在代码的开头放置标记,在开头加上//字符。
// This is an different sort of comment.
变量
简单类型
- 简单类型就是组成应用程序基本构件的类型,,例如,数值和布尔类型。
- 与复杂类型不同,简单类型没有子类型或特性。
类型 | 别名 | 允许的值 |
sbyte | System.SByte | 介于-128和127之间的整数 |
byte | System.Byte | 介于0和255之间的整数 |
short | System.Int16 | 介于-32768和32767之间的整数 |
ushort |
System.UInt16 | 介于0和65535之间的整数 |
int | System.Int32 | 介于-2147483648和2147483647之间的整数 |
uint | System.UInt32 | 介于0和4294967295之间的整数 |
long | System.Int64 | 介于-9223372036854775808和9223372036854775807之间的整数 |
ulong | System.UInt64 | 介于0和18446744073709551615之间的整数 |
一些变量名称前面的u是unsigned的缩写,表示不能在这些类型中存储负数。
类型 | 别名 | m的最小值 | m的最大值 | e的最小值 | e的最大值 | 近似的最小值 | 近似的最大值 |
float | System.Single | 0 |
|
-149 | 104 | 1.5* | 3.4* |
double | System. | 0 | -1075 | 970 | 5.0* | 1.7* | |
decimal | System. | 0 | -28 | 0 | 1.0* | 7.9* |
类型 | 别名 | 允许的值 |
char | System.Char | 一个Unicode字符,存储0和65535 |
bool | System.Boolean | 布尔值:true或flase |
string | System.String | 一个字符序列 |
变量的命名
变量的命名规则:
- 变量名的第一个字符必须是字母,下画线或@。
- 其后的字符可以是字母,下画线或数字。
字面值
类型 | 类别 | 后缀 | 示例/允许的值 |
bool | 布尔 | 无 | true或false |
int,uint,long,ulong | 整数 | 无 | 100 |
uint,ulong | 整数 | u或U | 100U |
long,ulong | 整数 | l或L | 100L |
ulong | 整数 | ul,uL,Ul,lu或LU | 100UL |
float | 实数 | f或F | 1.5F |
double | 实数 | 无,d或D | 1.5 |
decimal | 实数 | m或M | 1.5M |
char | 字符 | 无 | ‘a'或转义序列 |
string | 字符串 | 无 | “a...a“,可以包含转义序列 |
转义序列 | 产生的字符 | 字符的Unicode值 |
\' | 单引号 | 0x0027 |
\'' | 双引号 | 0x0022 |
\\ | 反斜杠 | 0x005C |
\0 | null | 0x0000 |
\a | 警告 | 0x0007 |
\b | 退格 | 0x0008 |
\f | 换页 | 0x000C |
\n | 换行 | 0x000A |
\r | 回车 | 0x0009 |
\t | 水平制表符 | 0x0009 |
\v | 垂直制表符 | 0x000B |
表达式
C#包含许多执行这类处理的运算符,把变量和字面值与运算符组合起来,就可以创建表达式,它是计算的基本构件。
运算符大致分三类:
- 一元运算符,处理一个操作数
- 二元运算符,处理两个操作数
- 三元运算符,处理三个操作数
运算符 | 类别 | 示例表达式 | 结果 |
+ | 二元 | var1=var2+var3 | var1的值是var2和var3的和 |
- | 二元 | var1=var2-var3 | var1的值是var2和1var3的差 |
* |
二元 | 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 |
运算符 | 类别 | 示例表达式 | 结果 |
+ | 二元 | var1=var2+var3 | var1的值是存储在var2和var3中的两个字符串的连接值 |
运算符 | 类别 | 示例表达式 | 结果 |
++ | 一元 | 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 |
- ++总是使操作数加1
- --总是使操作数减1
运算符 | 类别 | 示例表达式 | 结果 |
= | 二元 | var1=var2 | var1被赋予var2的值 |
+= | 二元 | var1+=var2 | var1被赋予var1与var2的和 |
-= | 二元 | var1-=var2 | var1被赋予var1与var2的差 |
*= | 二元 | var1*=var2 | var1被赋予var1与var2的乘积 |
/= | 二元 | var1/=var2 | var1被赋予var1与var2相除的结果 |
%= | 二元 | var1%=var2 | var1被赋予var1与var2相除所得的余数 |
名称空间
名称空间是.NET中提供应用程序代码容器的方式,这样就可以唯一的标识代码及其内容。
namespace LevelOne
{
// code in LevelOne namespace
// name "NameOne" defined
}
// code in global namespace