|
概述
1、什么是C#?
C#是Microsoft公司設計的一種編程語言。它松散地基于C/C++,并且有很多方面和Java類似。
Microsoft是這樣描述C#的:“C#是從C和C++派生來的一種簡單、現代、面向對象和類型安全的編程語言。C#(讀做‘Csharp’)主要是從C/C++編程語言家族移植過來的,C和C++的程序員會馬上熟悉它。C#試圖結合Visual Basic的快速開發能力和C++的強大靈活的能力。”
2、如何開發C#應用程序?
.NET SDK包括了C#命令行編譯器(csc.exe),下一個版本的Visual Studio (Visual Studio 7 or Visual Studio.NET)會包含對C#開發的完整支持。
3、C#可以取代Java?
C#非常像Java語言——這兩種語言的核心和C++相比都有相似的優缺點。例如,兩個語言都有垃圾回收,但是兩個語言都沒有模板(template)。Microsoft已經中止了Visual J++產品,因此很難不認為Microsoft在使用C#來替代Java。
4、C#可以取代C++?
顯然是不,但是我們又很難說C++是新的.NET平臺上編寫代碼的最佳選擇。為了使.NET的運行層能完全發揮作用,它要求編程語言遵循某些特定的規則——其中之一就是所有的語言類型必須遵守通用類型系統(Common Type System,CTS)。不幸的是,許多C++特性不能被CTS支持。例如,模板和類的多重繼承。
Microsoft對這個問題的答案是給C++提供可管理的擴展(Managed Extensions,ME), 這可以使C++遵守CTS。通過添加新的關鍵字來標記C++類有CTS的屬性(例如.-gc表示垃圾回收)。但是在創建新的工程時很難講為什么ME C++會比C#更合適。就特征(feature)而言它們很相似,但與C++不同的是C#從一開始就以.NET為環境設計的。ME C++存在的理由好像是將C++代碼移植(port)為.NET環境下的代碼。
因此,這個問題的答案,很可能是C++作為一個.NET環境之外的語言將依然保留它的重要性;而通過ME將現存的C++代碼移植為適合.NET環境;但是很可能C#將是C++開發者開發新的.NET應用程序的最好選擇。
8、C#是面向對象的嗎?
是的,C#像Java和C++一樣,是一個面向對象的語言。
9、C#有自己的類庫嗎?
不,就像所有的.NET語言(VB.NET,JScript .NET...)一樣,C#訪問.NET類庫,C#沒有自己的類庫。
基本類型
1、C#提供什么標準類型?
C# 支持的基本類型和C++很相似,包括int, long, float, double, char, string, arrays, structs 和 classes。然而,不要假設太多,名字可能很形似,但是一些細節不相同。例如C#中的long是64位的,而C++的long取決于平臺,32位的平臺上是32位的,64位的平臺上是64位的。class和struct在C++中幾乎完全一樣,但在C#中并不是這樣的。
2、是否所有的C#類型都派生于一個公共的基類?
是,也不是,所有的對象都可以看作從Object (System.Object)派生而來。但是為了把像int,float這樣的值類型實例看作是從Object對象派生的,這個實例必須通過一個裝箱的操作(boxing)轉化為引用類型。理論上,開發者可以忽略這些底層的轉化,但是認識到這點對于系統性能影響很重要。
3、是否可以這樣認為,可以將一個值類型的實例作為參數傳給以對象為參數的方法?
是的,例如:
class CApplication
{
public static void Main()
{
int x = 25;
string s = “fred”;
DisplayMe( x );
DisplayMe( s );
}
static void DisplayMe( object o )
{
System.Console.WriteLine( “You are {0}”, o );
}
}
NET技術:C#語言基礎常見問題匯總,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。