C#復習①
2016年6月15日
08:19
Main Introduction of C# 簡單介紹C#
1. C# is very similar to Java (70% Java, 10% C++, 5% Visual Basic, 15% new)
C#與Java好比失散多年的姐妹,長得像但是非同一母親所生。C# 在吸收Java同時又不忘記從C++那裡借鑒些東西過來。不過除了借鑒其他語言之外,C#自身的特點也不能忽略。
與Java相比,在C#中的新特性有不少:引用參數;堆棧分配對象;分塊矩陣;委托;版本控制;lambda表達式;擴展方法;
還有一些語法糖(Syntactic Sugar) : Component-based programming 基於組件編程;索引器;foreach循環;迭代器;類似SQL的查詢表達式。
2.從Hello World看C#程序的結構
文件命名: Hello.cs
程序:
using System; class Hello { static void Main() { Console.WriteLine("Hello World"); } }
編譯指令: csc Hello.cs
運行指令:Hello
運行結果:Hello World
首先程序導入namespace命名空間System,聲明Hello類,程序入口Main, 控制台輸出語句
通過下面的圖進行更詳細的說明:
一個C#程序可以有多個.cs文件組成,每個.cs文件下面可以包含多個命名空間,每個命名空間下面可以包含多個類。如果命名空間包含結構體,接口,委托,枚舉,一個命名空間可在其他文件中重復打開。
因此最簡單的程序就是單個類,單個文件,默認命名空間。
3.下面給出簡單的由兩個文件組成的程序。
4.針對上述程序的分析:
在Counter.cs文件中聲明了
函數Add ( 可見性為public,無返回值void,傳入參數類型為int);
函數Val ( 可見性為public,返回值為int,無參數)
在Prog.cs文件中:
函數的入口Main();
調用了Counter中的Add方法和Val方法
函數的編譯指令分析:
csc /target:exe Counter.cs Prog.cs
使用指令生成目標文件.exe(其中該exe文件可以自命名,如果僅僅指明生成.exe則默認命名問包含程序入口的Main()的文件名稱,在此即生成Prog.exe)
使用動態鏈接語言DLL運行程序的編譯指令:
csc /target:library Counter.cs
執行後生成 Counter.dll文件
csc /reference:Counter.dll Prog.cs
執後生成Prog.exe
後綴為exe文件的不同:
在此需要清楚的是,在Java中通過編譯生成的.exe文件是二進制文件,計算機可以直接運行。
但是在C#中雖然是.exe後綴,但是其文件類型為文本文件, 不能直接運行。