C#作为类C语言,其语法与C/C++语言是类似的。对于那些与C/C++语言一样的语法,我在学习笔记里不会再重提。书写的顺序基本和原书《C#入门经典》的顺序是一样的。
一:代码大纲功能:使用#region和#endregion关键字
使用#region和#endregion关键字来定义可以展开和折叠的代码区域的开头和结尾。例如,可以像下面那样将这些代码行折叠为一行
在鼠标点击#region左侧的减号之后,就可以将代码折叠为一行,如图:
二:C#中的简单变量类型
1:整数类型
类型 | 别名 | 允许的值 |
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之间的整数 |
2:浮点类型
类型 | 别名 | m的最小值 | m的最大值 | e的最小值 | e的最大值 | 近似最小值 | 近似最大值 |
float | System.Single | 0 | 2的24次方 | -149 | 104 | 1.5 * 10的-45次方 | 3.4 * 10的38次方 |
double | System.Double | 0 | 2的53次方 | -1057 | 970 | 5.0 * 10的-324次方 | 1.7 * 10的308次方 |
decimal | System.Decimal | 0 | 2的96次方 | -28 | 0 | 1.0 * 10的-28次方 | 7.9 * 10的28次方 |
3:文本和布尔类型
类型 | 别名 | 允许的值 |
char | System.Char | 一个Unicode字符 |
bool | System.Boolean | 布尔值:true或false |
string | System.String | 一组字符 |
4:关于别名:别名就是这些类型在.NET Framework库中的名称。这种类型中的每一种都利用了.NET Framework中定义的标准类型。
为什么要使用标准类型呢?这是因为使用标准类型可以在语言之间进行交互操作。
三:C#中变量的命名
1:命名规则:和C/C++变量的命名一样
2:命名约定:
变量:对于简单变量,使用camelCase规则。对于比较高级的命名规则使用PascalCase规则。
名称空间:使用PascalCase规则
函数名:使用PascalCase规则
四:名称空间
1:默认情况下,C#代码包含在全局名称空间中。这意味着对于包含在这段代码中的项,全局空间中的其他代码只要通过名称进行引用就可以访问它们。
可使用namespace关键字为花括号中的代码块显示地定义名称空间。如果在该名称空间代码的外部使用名称空间中的名称,就必须写出该名称空间中的限定名称。
2:使用关键字namespace定义嵌套的名称空间。如
namespace LevelOne
{
//code in LevelOne namespace
namespace LevelTwo
{
//code in LevelOne.LevelTwo namespace
//name "NameTwo" defined
}
}
//code in global namespace
同时要注意的是:在全局名称空间中,NameTwo必须引用为LevelOne.LevelTwo.NameTwo;在LevelOne名称空间中,可以引用为LevelTwo.NameTwo;在LevelOne.LevelTwo名称空间中,可以引用为NameTwo
3:名称空间的引用:使用using语句简化,如,在下面的LevelOne名称空间中可以直接使用NameTwo。
namespace LevelOne
{
using LevelTwo;
namespace LevelTwo
{
//name "NameTwo" defined
}
}
4:使用using语句为名称空间提供别名来避免不同名称空间中相同名称所产生的冲突。
如,在下面的LevelOne名称空间中可以把LevelOne.NameThree引用为NameThree,把LevelOne.LevelTwo.NameThree引用为LT.NameThree
namespace LevelOne
{
using LT = LevelTwo;
//name "NameThree" defined
namespace LevelTwo
{
//name "NameThree" defined
}
}
5:控制台应用程序中名称空间的分析,如图:
System名称空间是.NET Framework应用程序的根名称空间,包含控制台应用程序需要的所有基本功能。其余的4个名称空间常常用于控制台应用程序,所以程序包含了它们。