这两天刚把c#视频看完了,给我的感觉是,编程语言很多地方是通用的,由于以前学过VB,所以在代码的理解上基本没有问题。C#无非也就是类、运算符、表达式、逻辑运算、数组等。但是因为VB是基于对象不是完全的面向对象(vb没有继承),所以和C#又有不小的区别,比如说静态方法、静态类、抽象类、覆写等,还有在运算符、逻辑运算符号使用方面也有细微的差别。我觉得看完这个视频给我最大的感觉的面向对象编程的灵活和强大,而面向对象也不是我以前想的那么简单。庆幸的是不管是软工、Uml还是C#都有涉及面向对象的讲解,只能说现在对面向对象有理论上的理解,要达到熟练应用的地步还有很长的路。
我觉得在学习C#中,有几个比较难理解的概念。
1、静态类
静态类不属于任何对象,它可以直接通过类名访问。
2、构造函数
构造函数与类同名,一般为公有模式,可以为空。可以认为是一个类的特殊方法,每次创建类都需要调用该函数。
构造函数的作用:可以统计实例化的次数、静态构造函数还可用于初始化静态数据。
3、方法重载
方法重载:根据同一方法所带参数不同,可以设计多个相同的方法以适应。避免所带参数不同调用同一方法引起的错误。
4、继承与多态
base、virtual、override关键字c#中不能多重继承,可以通过多重接口实现,使用base关键字可以调用基类中的构造函数。
、
使用virtual关键字可以定义虚拟方法,定义的虚拟方法通过override关键字可以重写,使用new关键字可以覆盖继承成员的参数。
5、抽象类、接口
抽象类是一种特殊的类,它不能实例化,不能继承,但可以派生,派生类可以使用override关键字重写方法。接口是更抽象的抽象类,定义了方法就必须使用,接口可以实现多接口实现,接口的默认模式为public。
6、运算符重载
运算符重载:对实例进行加减操作。声明方法:Public vector operator +(vector1,vector2)声明对+进行重载,比较特殊的重载是重载比较运算符,必须成对重载,比如说重载==,必须重载!=,一般取反即可。
7、错误和异常处理
VB采用的异常处理是使用GOTO 语句,而C#使用的是try、catch和finally。try是错误可能出现的区域,和VB中的on error goto ##:类似,catch是获取错误的详细信息,finally是不管怎样,都要执行的操作,和vb中没有Exit sub的错误处理类似。需要注意的是获取的错误有尽可能有详细的说明,不能为了简单敷衍。
基本上C#一些常见的不容易理解的概念就这些,虽然看完了视频,但是还有写地方不是很清楚,比如说委托和事件,再进一步的理解后会加到这里面。