其实C#的语法与C++非常相似,有些变化引起的错误却很严重,本文就对于大多数用户头疼的C++语言进行详细的剖析与介绍,希望大家能从中找到自己想要的东西。
因为毕竟它并不是一个.net下的正统语言,.net应该是c#的舞台,作为一个C++程序员,我们应该庆幸,因为我们学习c#其实是简单的直接的,需要我们接受的新知识其实不多,相对其他语言来说,我们应该可以更加平滑的过渡到c#的开发中.废话不多说,现在就让我们用C++的基础来学习这个渐渐壮大的新语言-----C#
对于C#的讲解我只讲解和C++有区别的地方,相同的部分我就一带而过,.这样的对比学习可以让我们在已有知识的前提下快速掌握C#,一开始学习语言大部分的教程都会用一个Hello World程序来示范,我们也落入俗套,用Hello World来和C++中做一个比较:
- #include <iostream>
- using namespace std;
- void main()
- {
- //C++程序
- /* C++程序*/
- cout<<"Hello World!"<<endl;
- }
- C#:
- using System;
- namespace HelloWorl
- {
- class Class1
- {
- //C#程序
- /*C#程序*/
- ///C#程序
- static void Main ()
- {
- Console.WriteLine ("Hello World!");
- }
- }
- }
一眼看上去两者差不多,心中一阵窃喜,可以说C++对语法的定义更加严格一些. 首先对于程序的进入点,最大的区别就是Main函数的开头必须要大写.因为C#是一个完全面向对象的程序语言,所以它的所有代码都必须定义在一个类中,Main函数也不例外,同时因为.net程序在编译运行时都是先转为中间语言,然后中间语言再编译为机器语言,这样的好处有2个。
如同Jave一样,写好的程序可以在不同的系统中运行,而不需要改变程序.二.使用不同的语言写的程序,因为要转化为相同的中间语言。所以在程序开发中可以使用不同的程序语言编写,而相互调用.,当使用不同语言开发或者进行分类开发时,各自开发的程序中会出现相同的变量名,函数名等,所以在写C#程序时,必须把程序包涵在一个名字空间内.
定义名字空间使用关键字:namespace <空间名>.当一个命名空间中的代码需要使用在另一个名字空间中定义的名称,就必须包括对该命名空间的引用,使用点字符(.) 这里就定义了两个名字相同的变量,我们可以使用LevelOne.A 和 LevelOne.LevelTwo.A 来独立使用它们,互不干扰。#t#
建立了名字空间后,我们可以使用using关键字来简化对它们包含的名称的访问.和C++中使用using namespace std的含义相似;对于主函数必须要有限定词static 这表明Main函数是静态的,在内存中只能有一个副本.
第一行中的using System.其命名空间是.NET应用程序的根名字空间,包涵了控制台应用程序所需要的所以基本功能.就如同C++中的头文件包涵在std这个名字空间中一样.Console.WriteLine ("Hello World!");Console是system名字空间中的一个类,其有一个WriteLine方法,它的作用和cout一样,输出一行字符串。