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

使用常量的好处:

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

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

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

编写中可能存在错误,欢迎读者指正批评,邮箱15734108350@163.com.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • 注:这是第三遍读《C语言深度解剖》,想想好像自从大学开始就没读完过几本书,其中谭浩强的那本《C语言程序设计(第四版...
    HavenXie阅读 1,774评论 1 6
  • 基本内置类型 算术类型字符整型布尔值浮点数 空类型(void) 算术类型 带符号类型和无符号类型int、short...
    2625K阅读 3,290评论 0 1
  • 1月22日,杭州大雪。媒体天天预警的大boss级别寒潮将至。去医院的时候天空下了很大的雪,停车的地方离入口不远,所...
    乌龙小果阅读 398评论 0 0
  • 时间过得非常快,再过几个小时就过年了,现在和大家说声新年快乐! 天气温度挺高的,我还是觉得有点冷,最近总...
    林清彧阅读 184评论 0 1