其实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!");
}
}
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
一眼看上去两者差不多,心中一阵窃喜,可以说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一样,输出一行字符串。