以前在学校自己没好好学习过C#,除了在上机课动手练习,课余时间都没有练习过。不知道方法如何写,不明白类到底是干什么用的,不清楚什么是面向对象。不明白的地方也不问老师,问题越积越多,就以为自己不适合做编程。
试训的第一天,我发现老师讲的很多知识我都没有深入了解过,就拿Main函数来说,不知道它的返回值有int型,参数可以没有。老师写的检测代码量的程序很多地方听不懂,看着别的同学可以很快的跟上老师的思路我,我很着急。当老师让把剩下的代码补充完整,我不知道从哪里入手。我当时在后悔在学校的时候为什么不好好学习。第二天学完控制台,知道Console有很多方法,了解了各个方法的作用。还做了一个小程序,当自己把程序做出来时是多么的激动。以前写程序是复制别人的,没独立完成过。自己终于把值类型和引用类型区分开,值类型表示实际数据存放在线程堆栈中,引用类型指向数据的引用存储在托管堆中。知道了如何进行类型转换。
这些进步给了我信心,我每天都做笔记,遇到不明白的就问同学或者问老师,每天都动手做练习。第三天学习语句,以前在学习语句的时候不是特别明白,也没练习过。下午做了一个银行系统使用了几个不同的循环语句明白它们的区别,这个程序需要用到方法而我当时不知道如何用,就问同学看以前的课本,知道自己把方法和构造函数弄混了。随着学习的深入知道的东西多了,编程序时也有思路了,不像刚开始的时候不知道从什么地方着手。学习异常处理时知道它的重要性,但是不会用,尤其是自定义异常处理更不知道怎么写怎么用。反复问了同学四五遍,老师第二天又重复一遍才明白。以前只知道try….catch语句没用过,现在能用了。
第四天学习结构、枚举和数组,以前没用过结构不知道它的作用,后来又学习类把它们比较了一下:1、结构是值类型,类是引用类型2、结构不能从另一个结构或类继承,也不能作为一个类得基类,类可以3、结构的构造函数必须带参数,类可以不带4、结构的实例化可以不使用new运算符类不可以 5、结构可以赋null值。知道使用枚举的好处和用法,枚举中的parse方法可以将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。
学习集合时,知道如何使用ArrayList,它的优点是:1、支持自动改变大小的功能2、可以灵活插入元素3、可以灵活删除访问元素。练习ArrayList的各个方法,知道他们的作用,知道RemoveRemoveAt的区别。
学习完类的时候,我把类总结了一下1访问修饰符 public :访问不受限制;protected:访问仅限于包含类或从包含类派生的类型;Internal:访问仅限于当前程序集;protected internal:访问仅限于当前程序集或从包含类派生的类型;private:访问仅限于包含类型。2 类的分类 静态类:类可以声明为static的,以指示它仅包含静态成员。不能使用 new 关键字创建静态类的实例。静态类是密封的,因此不可被继承。静态类不能包含构造函数,但仍可声明静态构造函数以分配初始值或设置某个静态状态。抽象类 :抽象类使用abstract修饰符,对抽象类的使用有以下几点规定:抽象类只能作为其它类的基类,它不能直接被实例化,而且对抽象类不能使用new操作符。抽象类如果含有抽象的变量或值,则它们要么是null类型,要么包含了对非抽象类的实例的引用。抽象类允许包含抽象成员,虽然这不是必须的。抽象类不能同时又是密封的。如果一个非抽象类从抽象类中派生,则其必须通过重载来实现所有继承而来的抽象成员。抽象类中的构造函数要有参。密封类: sealed修饰,不能用作基类密封类主要用于防止派生,不能被继承。密封成员自己是不能被重写的,sealed修饰符必须与override修饰符结合使用。
普通方法按参数分为值类型参数方法、引用类型、ref关键字、out关键字、params。还有分部方法、匿名方法、扩展方法。大概知道什么是面向对象,对继承也有一定了解,具体分析项目时不知道该怎么分析。就拿上机考试系统来说,当时就没考虑到把选项单独做一个类,对它进行修改时也方便,在以后的学习中会加强这一块。