一、变量
1、变量初始化:
变量是类或结构中的字段,如果没有显式初始化,创建这些变量时,其默认值就是0;
方法的局部变量必须在代码中显式初始化,之后才能在语句中使用它们的值;
2、类型推断
var Num = 0;当作一个int来看待;
声明了变量,推断出了类型后,就不能改变变量类型了,变量的类型确定后,就遵循其他变量类型遵循的强类型化规则;
3、变量的作用域
4、常量
由于使用易于读取的名称(名称的值易于理解)替代了较难读取的数字或字符串,常量使程序变得更易于阅读;
常量使程序更易于修改;
常量更容易避免程序出现错误;
5、预定义数据类型(值类型和引用类型)
值类型存储在堆栈中,而引用类型存储在托管堆上;
CTS类型:C#认可的基本预定义类型并没有内置于C#语言中,而是内置于.NET Framework中。例如,在C#中声明一个int类型的数据时,声明的实际上
是.NET结构System.Int32的一个实例。
C#预定义值类型:
整型:
sbyte-->System.SByte;
short-->Sytem.Int16;
int-->Sytem.Int32;
long-->Sytem.Int64;
byte-->System.Byte;
ushort-->System.UInt16;
uint-->System.UInt32;
ulong-->System.UInt64;
浮点类型:
float-->System.Single;
double-->System.Double;
decimal-->System.Decimal;(128位高精度)例如:decimal d = 12.3M;
bool类型:
bool -->System.Boolean;
字符类型:
char-->System.Char;
引用类型:
object-->System.Object;
可以使用object引用绑定任何子类型的对象;(装箱和拆箱);
object类型执行许多一般用途的基本方法,包括Equals()、GetHashCode()、GetType()和ToString();
string-->System.String;
可以在字符串字面量的前面加上字符@,在这个字符后的所有字符都看作是其原来的含义——它们不会解释为转义字符:
string filepath = @"C:\ProCsharp\First.cs"
二、流控制
1、条件语句:
if()else()
switch();
2、循环:
for循环;
while循环;
do{}while循环;
foreach循环;
3、跳转语句:
goto语句;
goto lable;
Console.WriteLine("a");
lable:Console.WriteLine("b");
break语句;
continue语句;
return语句;
4、枚举
public enum TimeOfDay
{
Morning = 0;
Afternoon = 1;
Evening =2;
}
TimeOfDay time = TimeOfDay.Morning;
三、XML文档
四、处理器指令
#define和#undef
#if #elif #else #endif
#warning #error
#region #endregion
#line
#pragma
五、C#编程规则
1、关于标志符的规则:
尽管可以包含数字字符,但他们必须以字符或下划线开头
不能把C#关键字用作标志符
C#中的约定是命名变量时不使用任何前缀;
2、命名约定
名称的大小写:名称都使用Pascal大小写形式,Pascal大小写形式指名称中单词的首字母大写,名称空间和类,以及基类中的成员等的名称都应遵循
该规则;
名称的风格:例如ShowConfirmationDialog() 另一个类似的方法命名为ShowWarningDial();
名称空间的名称:
名称和关键字不能冲突:
3、属性和方法的使用
客户端代码应能读取它的值,最好不要使用只写属性,例如使用SetPassword()方法,而不是Password只写属性。
读取该值不应花太长的时间。实际上,如果它是一个属性,通常表明读取过程花的时间相对较短。
读取该值不应有任何细微的和不希望的负面效应;
可以按照任何顺序设置属性;
顺序读取属性也应有相同的效果;
4、字段的用法
字段的用法非常简单。字段应总是私有的,但在某些情况下也可以把常量或只读字段设置为公有,原因是如果把字段设置为公有,就不利于在以后扩展或修改类 。