C#基础语法(一)

一.基础语法

1.C#区分大小写,所以myVar和MyVar是两个不同的变量。

2.每个C#可执行文件(如控制台应用程序,Windows应用程序和Windows服务)都必须有一个入口点————Main()(M大写)

public static void Main()

{

//do something

}

在程序启动时调用这个方法。该方法要么没有返回值(void),要么返回一个整数(int)

二.变量

1.编译器不允许在表达式中使用未初始化的变量。如果变量是类或结构中的字段,如果没有初始化,创建这些变量时,其默认值就是0。

2.类型推断

类型推断(type inference)使用var关键字。编译器可以根据变量的初始化值“推断”变量的类型。var somenum = 0;

即使somenum从来没有声明为int,编译器也可以确定,只要somenum在其作用域内,就是一个int.

声明了变量,推断出了类型后,就不能改变变量类型了。变量的类型确定后,就遵循其它变量类型遵循的强类型化规则。

3.变量的作用域

变量的作用域是访问该变量的代码区域。只要变量的作用域是程序的不同部分就不会有问题。

(1).局部变量的作用域冲突

public static int Main()

{

int j =20;

for(int i=0;i<20;i++)

{

int j = 30;

// do something

}

}

编译时会报错,因为在Main()方法作用域内有两个变量j,编译器无法区分这两个变量。

(2).字段和局部变量的作用域冲突

某些情况下可以区分名称相同,作用域相同的两个标识符。原因是C#在变量之间有一个基本的区分,它把在类级别声明的变量看作

字段,而把在方法中声明的变量看作局部变量。

class Program

{

int j = 20;

static void Main(string[] args)

{

int j = 30;

Console.WriteLine(j);

Console.ReadKey();

}

}

虽然在Main()方法的作用域内声明了两个j,这段代码也会编译。在类级别上定义的j,在该类删除前是不会超出作用域的,在

Main()中声明的j隐藏了同名的类级别变量,所以运行代码时会显示30.

三.常量

顾名思义,常量是其值在使用过程中不会发生改变的变量。在声明和初始化变量时,在变量的前面加上关键字const,就可以把该变量指定

为一个常量:const int a =100;

常量的特点;

*常量必须在声明时初始化。指定了值之后就不能改写了。

*常量的值必须能在编译时用于计算。因此不能用于从一个变量中提取的值来初始化常量。如果需要,应使用只读字段(后面介绍)。

*常量总是静态的。但注意,不必(实际上不允许)在常量声明中包含static

使用常量的好处:

*由于使用易于读取的名称(名称的值易于理解)代替了较难读取的数字或字符串,常量使程序变得更易于阅读。

*常量使程序易于修改。当常量的值需要修改时,只需要把新值赋给这个常量,不必查找整个程序去修改。

*常量更容易避免程序出现错误。如果在声明常量的位置以外的地方给常量赋值,编译器会报错。

编写中可能存在错误,欢迎读者指正批评,邮箱[email protected].

你可能感兴趣的:(C#基础语法(一))