代码改变世界

TJU_SCS_C#学习笔记(2)

2015-03-22 23:37  blueContra  阅读(194)  评论(0编辑  收藏  举报

一.课堂内容

  这是C#的第二节课,讲了一些关于C#的比较基本的东西,C#language fundamentals 以及 classes 和objects,由于都是OOP的语言,所以很多地方我都觉得和C++或者java非常类似。

  关于OOP,章老师又提到了面向对象语言的三个要素,封装Encapsulation,继承Inheritance,和多态Polimorphism。其中关于多态的含义我始终不是太理解,也在网上试着找了一些解释,比如

比之前对多态的理解稍微深了一点点,但还是希望在日后的学习中慢慢体会。

 

二.学习内容

  1.首先是关于一些C#type的size问题,我重复了上课演示过的一些types之间的相互implicit translation,如

以及

相近类型的转换必须注意size,小转大没问题,大转小可以使用explicit translation但必须保证不越界。

  2.关于{0}的用法上课没太听清,于是我课后自己试了一下,明白了{0}代表传入的一个参数,依此类推{1}则代表第二个参数,如下

  3.接着我试了一下enum,一开始是这样的

各种报错百思不得其解,上网找了关于C#enum的用法,还是没看出自己出了什么问题,知道两天后和同学的交流中才发现,应该这样写

enum的级别应该是和class相近的,所以应该写在main函数外面吧,应该是这样……然后enum默认的定义对应的integer从0开始,增量是1。当把其中一个定义了其他的数如-50,接下来就默认从-50开始增量为1地递增。

  4.接下来我试了一下switch,while,for的用法,感觉和C++,java中大致没有区别,

在while这里,正如讲到的,在c++中,一个非零数在statement括号内是等价于true的。

然后我试了一下foreach,这个用的不太多,不太熟,但是感觉挺强大的,

但是在这里我感觉应该是可以的,不知道为什么不行,可能这个foreach和Java中的不太一样,不能用双层的foreach结构来对二维数组进行操作。

哦,对,我在百度的过程中发现了C#关于二维数组的定义,发现与C++和Java不太一样,如string[,],用了一个逗号表达二维数组而不是以前的[][]。

  5.我跟着ppt的内容继续,

这个能在定义variable的时候用这个叫三元操作符来着的东西,感觉挺好玩的,以前都是代替if语句使用的。

  6.然后就到了什么operator precedence,指令预处理?

其实我也不太懂这个,debug好像是内置的文件还是什么?VC_V7又是什么= =。

  6.最后我试了一下C#的class,

然后这里提到的C#4.0的形参的initialization。

 

三.课后感想

  感觉这节课还是比较基础,和之前学到的大同小异,希望学到更精彩的东西,希望大家一起努力!Go ahead!