c 程序员快速学习c#

上传人:第*** 文档编号:57490429 上传时间:2018-10-22 格式:PDF 页数:17 大小:172.74KB
返回 下载 相关 举报
c  程序员快速学习c#_第1页
第1页 / 共17页
c  程序员快速学习c#_第2页
第2页 / 共17页
c  程序员快速学习c#_第3页
第3页 / 共17页
c  程序员快速学习c#_第4页
第4页 / 共17页
c  程序员快速学习c#_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《c 程序员快速学习c#》由会员分享,可在线阅读,更多相关《c 程序员快速学习c#(17页珍藏版)》请在金锄头文库上搜索。

1、C+程序员快速学习 C#随着.NET 的深入人心,作为一个程序员,当然不能在新技术面前停步。面对 C+在.NET 中的失败,虽然有一丝遗憾,但我们应该认识到,对于 c+其实就不应该对其在.net 中的表现有太大的奢望,因为毕竟它并不是一个.net 下的正统语言,.net 应该是c#的舞台,作为一个 c+程序员,我们应该庆幸,因为我们学习 c#其实是简单的直接的,需要我们接受的新知识其实不多,相对其他语言来说,我们应该可以更加平滑的过渡到 c#的开发中.废话不多说,现在就让我们用 C+的基础来学习这个渐渐壮大的新语言-C#对于 C#的讲解我只讲解和 C+有区别的地方,相同的部分我就一带而过,.这

2、样的对比学习可以让我们在已有知识的前提下快速掌握 C#一:统窥:一开始学习语言大部分的教程都会用一个 Hello World 程序来示范,我们也落入俗套,用 Hello World 来和 C+中做一个比较:C+:#include using namespace std;void main()/C+程序/* C+程序*/cout.当一个命名空间中的代码需要使用在另一个名字空间中定义的名称,就必须包括对该命名空间的引用,使用点字符(.)例:namespace LevelOne/name “A”definedNamespace LevelTwo/name “A”defined这里就定义了两个名字相同

3、的变量,我们可以使用 LevelOne.A 和 LevelOne.LevelTwo.A 来独立使用它们,互不干扰.建立了名字空间后,我们可以使用 using 关键字来简化对它们包含的名称的访问.和 C+中使用 using namespace std 的含义相似;对于主函数必须要有限定词 static 这表明 Main 函数是静态的,在内存中只能有一个副本.第一行中的 using System.其命名空间是.NET 应用程序的根名字空间,包涵了控制台应用程序所需要的所以基本功能.就如同 C+中的头文件包涵在 std 这个名字空间中一样.Console.WriteLine (“Hello Worl

4、d!“);Console 是 system 名字空间中的一个类,其有一个 WriteLine 方法,它的作用和 cout 一样,输出一行字符串.二.数据类型C#中的数据类型和 C+是类似的.1.浮点类型浮点类型中添加了一个精度更高的 decimal 类型.对于金融方面的程序开发,此种数据类型用来定义钱币.2.Bool 类型Bool 类型的变量只能赋值为:false 和 true,虽然它们的含义仍然是 0 和非 0,但是在使用中不能再给它们赋值成整数值,在判断语句中.if (bool a=1)的使用都是错误的.3.字符类型Char 类型在 C#中是 16 位的,它也不能接收一个整数值4.整数类型

5、整数类新中添加了 byte(8 位无符号整数),sbyte(8 位有符号整数),short(16 位有符号整数)long 变成了真正的 64 位有符号整数,它可以用在 64 位机器的编程中.uint,ushort,ulong 顾名思义是没有符号的整数,它和 C+中的 unsigned int 是一样的,名字换了一下而已.5.字符串类型String 类型是字符串类型,它是引用的类型,它的使用方法和 C+中 string 的使用相似,可以进行+运算String 类型有一些方法可以给我们使用.例如:ToCharArray() 把字符串放入一个字符数组中Length 返回字符串的长度等等,可以在 MS

6、DN 中查找.6.类型的转换C#是一个强类型的语言,它的数值类型有一些可以进行隐式转换,其他的必须显式转换,隐式转换的类型只能是长度短的类型转换成长的类型,例如 int 可以转换成 long,float,double,decimal.反之必须显式的转换.例:int a=7;float b=a;/隐式转换long c=12L;/和 C+一样必须加上后缀 L 才能定义为 long 型不然就为 int 型了a=(int)c; /显示转换使用上面的显示转换不能用在 BOOL 和 string 类型上,如果希望 string 或者 bool 类型和整数类型之间的转化可以使用一个方法.Convert.To

7、*(val)*:一种数据类型(具体请参看 MSDN)val:可以是这种类型的变量例:int a=123;string str=Convert.ToString(a);bool m_bool=Convert.ToBoolean(a);7.枚举类型C+和 C#的枚举类型,定义相同,使用也相同,只要注意 C#中语句最后不需要;结束符,同时定义枚举类型时也不许放在主函数代码段中它只能放在执行代码外面.如下using System;namespace HelloWorldenum weekmonday,tuesday,wednesday,thursday,friday,saturday,sundaycl

8、ass Class1static void Main()week day=week.friday ;int a=(int)day;int b=(int)week.saturday ;8.指针类型c+中奉为经典的指针类型,在C#中已经取消了,真不知道这个是一个好消息还是坏消息,不过在易用性方面来说因该是一个进步.不过 c#中其实在隐藏了一个指针,我们会在后面说到,同时在 C#中也可以包含不安全代码,这些代码就是使用了指针的代码.9.结构类型C#中的结构类型看上去和C+没有什么区别,定义使用也相似,但还有有很大的区别的,首先就和枚举类型相似, 最后不需要;结束符,同时定义时也不许放在主函数代码段中

9、它只能放在执行代码外面.其二最大的区别就是 C#中的结构已经和类相似了,C+中的结构是公有的,而 C#中是私有的,它和类的区别唯一就是不能继承,但是结构是在堆栈中创建的空间,所以最好是对小量的数据进行操作例:using System;namespace ConsoleApplication1public struct studentpublic int a;public double c;enum weekmonday,tuesday,wednesday,thursday,friday,saturday,sundayclass Class1static void Main(string arg

10、s)week day=week.friday ;int aa=(int)day;int bb=(int)week.saturday ;Console.WriteLine (“0,1“,aa,bb);student a,b;a.a=1;a.c=1.1;b=a;a.c =2.6;Console.WriteLine (“0123“,b.c,b.a ,a.a ,a.c);Console.WriteLine (“1032“,b.c,b.a ,a.a ,a.c);输出结果:4,51.1112.611.12.61C#中的输出定位格式和C语言中的printf类似,但更加简洁,不需要在对不同类型的变量使用不同的

11、占位符,只需对应后面跟着的变量,给出序号就可以了.10.数组类型数组的定义和 C+有区别,看上去很别扭;定义语法为: 例:int num;这样就定义了一个 int 类型的数组,但是切记它可和 C+不同,里面可不要写内容哦!int10 num 可是错误的.确定数组的大小有两个办法,一.在定义时指定数据:例 int num=5,3,7,3;二.使用关键字 new;例:int num=new int4;当然两者也可以合起来:例:int num=new int45,3,7,3;注意:前面定义了4个数据,后面花括号里面就必须有4个数据不然就是错误的.例:int num=new int44,3 /错误;对

12、数据的使用和 C+一样.对多维数组的定义和 C+是不同的C+中定义为:int num34=1,2,3,4,5,3,2,3,4,2,3,4;C#中定义为:int, num=new int3,41,2,3,4,5,3,2,3,4,2,3,4;/注意:和 C+不同 C#不能在数据列表中不分类,也就是说不使用把一组括起来是错误的,而在 C+中是正确的对数据的使用也相应的变为:num2,1=3;C#在数组中最富革命性的改变因该是添加了锯齿形数组,例如它可以添加一组1,2,3,4,2,3,2,3,1长度不一样的数据,在 C+中只能创建一个33的数组,在C#中它能够产生这样一个锯齿形数组,第一组中有4个数据

13、,第二组中有2个数组,第三组中有3个,这样可以不浪费内存锯齿数组的定义和前面的定义也有区别,它更象是一个数组中包含了一个数组;int num=new int3;num0=new int41,2,3,4;num1=new int22,3;num2=new int32,3,1;下面是上面的定义的一种简洁写法:int sum=new int1,2,3,4,new int2,3,new int2,3,1;三.变量变量的使用和作用域和 C+类似,没有什么特别需要注意的.但是首先我们应该看到,现在的程序都是包含在类当中了,也就是说定义的变量都变成了类的私有成员,如果要在别的类中使用变量就需要在定义语句前加

14、上限制符 public在 C+中我们看到过这样在类中声名变量:public:int a;int b;a,b 都是公有的,因为使用了 public:,但是在 C#中这样的语句没有了,我个人认为这样其实很好嘛,简洁明了,呵呵.在 C#中必须给每个变量添加限制符public int a;public int b;C#中的限制符还有一些,如下:internal:变量只能在当前程序中使用.new:从其他类继承而来的类,并隐藏了该类中的已有字段,这个关键字会在类中介绍.private:私有的,和 C+中含义一样protected:保护类型,和 C+中含义一样static:静态的,和 C+中含义一样read

15、only: 只读,在变量初始化以后就不许改变.protected internal:当前程序中使用,或者在派生当前类型的其它类型中被访问,就是双重限定,但只有这一个组合四.常量常量的定义使用 const 关键字,和 C+类似.它和只读限定符的区别.1.常量是静态的 2.必须在初始化时赋值真不明白有什么实际的意义,发现 C#也是一个累赘的语言,呵呵.五.表达式C#中的运算符,优先级和 C+一样,但是需要注意下面的四个运算符*,-,if (a=Getnum()/假设 Getnum 返回一个整数值/a 为非 0else/a 为 0在 C+中上面的代码是正确的,但是在 C#中是错误的,一个整数值是不可以赋给 BOOL 值的,这样做可以增强代码的安全性2.switch选择分支语句和 C+用法也相当,但是 C#中对它的格式更加严格了,每个 case 语句后面都必须跟上 break,不然就是错误的语句,但是也有例外,可以使用臭名昭著的 GOTO 语句,跳转到下个 case 语句,这样编译器是不会报错的,当然如果你真的希望有多个条件执行相同语句的话,可以省略写成下面的方法:switch (char c)case ua:case us:case en:string language=”English”;break;3.循环语句C+中的 3 种循

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号