首页 > 代码库 > 变量和表达式

变量和表达式

  1. 注释

/* This is a comment */

/* and so …

     …          */

// This is a different sort of comment.

/// <summary>

  1. #region #endregion
  2. 简单类型

整数类型

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 布尔值:truefalse

string System.String 一组字符,字符数没有上限,因为它可以使用可变大小的内存

  1. 变量的命名

变量名的第一个字符必须是字母,下划线或@

其后的字符必须是字母,下划线和数字

不能使用关键字,C#是区分大小写的

.Net Framework命名空间中有两种命名约定,称为PascalCasecamelCase前者所有单词的首字母大写,后者第一个单词的首字母小写,其余还是大写。

建议:对于简单的变量,使用camelCase规则,对于比较高级的命名则使用PascalCase

  1. 字面值

类型

类别

后缀

示例/允许的值

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", 可以包括转义字符

  1. 转义字符

转义序列

产生的字符

字符的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"

  1. 变量的声明

int age;

age = 25;

int age = 25;

 

int xSize, ySize;

int xSize, ySize = 5;

int xSize = 4, ySize = 5;

  1. 数学运算符

运算符

类别

示例表达式

结果

+

二元

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。这是一个隐式转换。还有二元运算符(+)可以用于字符串的拼接。

  1. 递增和递减运算符

运算符

类别

示例表达式

结果

++

一元

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. 赋值运算符

运算符

类别

示例表达式

结果

=

二元

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相除所得的余数

  1. 运算符的优先级

优先级

运算符

最高级

++, -- (用作前缀); +, - (一元)

            

*, /, %

        

+, -

 

=, *=, /=, %=, +=, -=

最低级

++, -- (用作后缀)

优先级相同的运算符(如*/)按照从左到右的顺序计算。

括号可以用于重写优先级。

++--用作后缀运算符的时候,由于其不改变表达式的值,所以可以在概念上认为其优先级最低。

  1. 命名空间

.NET 应用程序中定义的所有名称,包括变量名,都包含在命名空间中。命名空间采用层次结构,我们通常需要根据包含名称的命名空间来限定名称,以便访问它们

根据约定,命名空间通常采用PascalCase命名方式

using语句可以应用到包含它们的命名空间,以及该命名空间中包含的嵌套命名空间。

using语句本身不能访问另一个命名空间中的名称。除非命名空间中的代码以某种方式链接到项目上,或者代码是在该项目的源文件中定义,或在链接到该项目的其他代码中定义的,否则就不能访问其中包含的名称。