其實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 來獨立使用它們,互不干擾。
建立了名字空間後,我們可以使用using關鍵字來簡化對它們包含的名稱的訪問.和C++中使用using namespace std的含義相似;對於主函數必須要有限定詞static 這表明Main函數是靜態的,在內存中只能有一個副本.
第一行中的using System.其命名空間是.NET應用程序的根名字空間,包涵了控制台應用程序所需要的所以基本功能.就如同C++中的頭文件包涵在std這個名字空間中一樣.Console.WriteLine ("Hello World!");Console是system名字空間中的一個類,其有一個WriteLine方法,它的作用和cout一樣,輸出一行字符串。