资源描述:
《C#基础概念知识》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1 基本语法的学习与法学习主要包含了以下几个方面:(1) 基本的数据类型;(2) 字符串;(3) 控制语句;(4) c#特殊的关键字;(5) 异常处理机制;1.1 基本的数据类型比较特殊的几个类型有:decimal;非齐整数组;定义常量的方式:(1)常量public const doublegravitationalConstant=6.673e-11;不要和直接量混合了。所谓的直接量其实就是直接给出一个数值,类似于汇编里头的立即数。(2)变量的
2、作用域;这点和delphi稍微有点不同,在c#中,变量的作用域是按照大括号来划分的,比如:publicstaticvoidmain(){ intx=10; if(x==10) { inty=100; //这个变量只在这个if语句内部有效}}(3)类型转换类型转换主要分为:自动类型转换和强制类型转换。强制类型转换采用和java一样的方式;intI=(int)(10/3);也就是这个类型一定要用括号括起来。自动类型转换则必须满足两个条件:格式兼容;目标类型的取值范围大于源类型。1.2 数组数组,c#中的数组是作为
3、对象来实现的,所有具备了许多优点数组的定义格式如下:int[]testArray=newint[10];数组可以在创建的时候初始化;int[]nums={100,101,102,103,104,105,106,108,109};等同于int[]nums= newint[] {100,101,102,103,104,105,106,108,109};还等同于int[]nums=newint[10]{100,101,102,103,104,105,106,108,109}; 多维数组的声明,感觉有点怪异:int[,]Two=newint[3,
4、4];int[,,]Three=newint[3,4,5]; 非齐整数组;就是允许每一维的长度不同;声明的格式如下:int[][]jagged=newint[3][];jagged[0]=newint[3];jagged[1]=newint[4];jagged[2]=newint[5];这样的格式我好像也在java里头看到过,不过有点不确定了。 数组的length属性;这里又分为一般的数组和非齐整数组,非齐整数组其实是数组的数组; foreach循环;在循环的过程中,迭代变量是只读的,因为不能通过迭代变量来改变数组的内容。使用方法如下:i
5、nt[]temp={3,4,5};foreach(intxintemp){ Console.WriteLine(“temp[i]is:{0}”,x);}1.3 字符串字符串的格式化输出;Console.WriteLine(“MyNameis{0}”,”Yangguichun”);在c#中,字符串并不像在其他的语言中一样,是字符的数组,它是对象。我记得java中的字符串也是对象。毫无疑问,c#学的是java的那一套,因为将字符串作为对象在java中已经被验证是可行的,所以为什么不用呢。既然学习的是java的那一套,我估计j
6、ava中给字符串提供的那一套方法在这里也是有的。 虽然字符串不是字符的数组,但是字符串还是允许使用如下的形式;strings=”thisisastring”;Console.WriteLine(s[0]); //将输出t不过却有点例外,就是不能够通过下标来给字符串赋值。因为据说一个字符串一旦创建,就不能修改了,是个常量。 字符串还允许使用==和!=,因为字符串类重载了这两个运算符。其他的运算符则和一般的应用一样,比较的是引用。 字符串一旦创建之后是不可改变的,如果要使用可改变的字符串,那么可以使用System.Text中的StringB
7、uilder类。 在switch中可以使用字符串,这是所学过的其他语言中都不具备的功能,这个功能很棒。 2 面向对象特性的学习面向对象特性的学习主要包含以下几个方面:(1) 接口;(2) 虚方法;(3) 面向对象方面的特殊的关键字;2.1 类、对象和方法2.1.1 重载首先来看一下重载,c#中的重载和delphi也有些不同,首先它并不需要overload关键字;其次一般方法的重载和构造函数的重载有所不同,重载的构造函数中的一个要调用另外一个的方法是:
8、 class TestConstructor { public TestConstructor() { Console.WriteLine("Constructor1