程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#基礎(一)(溫故而知新)

C#基礎(一)(溫故而知新)

編輯:關於C#

一、C#與.NET的關系

C#本身是一門語言,他是用於生成面向.NET環境的代碼,但其並不是.NET的一部分。換言之,C#編寫 的代碼總是運行在.NET Framework中。而且,在很多時候,C#的特定功能依賴於.NET。比如,在C#中聲 明一個int類型,實際上是.NET中System.Int32類的一個實例。

.NET的核心是CLR(公共語言運行時)。在CLR中運行的代碼,我們成為“托管代碼”。

我們寫的代碼在運行之前,會經過兩個編譯階段。

1、把源代碼編譯為IL(Microsoft中間語言)

2、CLR把IL編譯為平台專用的代碼。

在這裡,我們來簡單說說“托管代碼”。

IL和Java的字節代碼的理念基本是一樣的,都是一種低級語言,都用數字表示,可以非常快速度的轉 化為機器代碼,這樣執行效率會高很多,同時這也就是我們經常說的“平台無關性”的實現很 重要的一個環節。VB.NET C# J# 的源碼都可以被編譯成相同的IL, 也就實現了平台無關。換言之,只 要.NET Framework 可以運行在任何設備或系統上,VB.NET C# J#編寫的代碼都可以運行,而且都可以運 行在任何設備或者系統上。

VB.NET C# J# 的源碼都可以被編譯成相同的IL,這樣不同語言編寫的不同類都可以很容易的相互操作 ,也就是所說的,語言的互操作性。

似乎這個IL(Microsoft 中間語言)很好很強大,很神很奇特。我們接下來了解下這個IL。

首先,簡要的說說它的主要特征:

A、面向對象和使用接口

B、值類型和引用類型之間的巨大差別

C、強數據類型

D、使用異常來處理錯誤。

E、使用屬性(attribute)

接下來具體說說這些特征。

(一)、面向對象和使用接口

面向對象,在此不做多的闡述了。主要在這裡說說接口。關於接口,有一個很重要的理念:提供一個 契約,實現給定接口的類,必須提供該接口的所有方法和屬性的實現。舉個例子說明吧,有個接口IUser ,其有age,sex,userName屬性,有 setUname(),getAge()方法。有個類,UserClass繼承自IUser。這時, UserClass就必須實現IUser的所有方法setUname(),getAge()和所有屬性 age,sex,userName。

(二)、值類型和引用類型的巨大差異。

對於值類型,變量直接保存其數據,而對於引用類型,變量僅僅保存數據的地址。值類型一般存儲在 堆棧中,引用類型一般存儲在托管堆中。

(三)、強數據類型

所謂強數據類型,是指所有的變量都明確的被標記為某個特定的數據類型。比如string 或者int 等。 IL不允許對模糊數據類型執行操作。在javascript中的 var 變量就是模糊類型數據。

不過在現在的,.NET 3.5 中也加入了var ,也就是模糊數據類型。

(四)、使用異常來處理錯誤。

C#中以 try{} catch{}finally{}代碼塊來處理。這個具體在後面再談。

(五)、屬性的使用。

用戶定義的Attribute和其對應的數據類型或方法的元數據放在一起,這對於文檔說明很有用,它們和 反射技術一起使用,執行特定的任務。

在這裡提及到的元數據以及反射,在後面我們將會詳細講述到。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved