類和結構的相似之處有很多-結構可以實現介面,並且可以有同類一樣的成員。結構和類在很多重要的方面也不相同,無論如何:結構是數實值型別而不是參考型別,而且結構不支援繼承。結構的數值或是儲存“在堆棧中”或是“線上”。仔細的程式員可以通過明智地使用結構來提高效能。 例如,對Point使用結構而不是類,會在成員的儲存位置上造成很大不同。下面的程式建立並初始化了一個100個單元的數組。如果Point用類實現,程式就會佔用101個分立對象,一個分給數組另外100個分給每個元素。 class Point{
早上調試一個程式,是使用AJAX的XMLHTTP這種方式擷取資料。本機測試正常,然後上傳到伺服器,發現過濾功能居然不能使用,於是開始懷疑這懷疑那:懷疑POST方法不能使用(不過POST方法後,要使用Request.Params[""]來擷取資料,而不能用Request.QueryString[""]來擷取資料,這倒是真的);懷疑我的變數xhttp不能連著用兩次。 var xhttp = new ActiveXObject("Microsoft.XMLHTTP"); var para="..
為了理解上的方便,有時寫出如下的代碼:if (i == 0) ;else{ ...}但編譯器老是提示“空語句可能有錯誤”,感覺不爽。如果用調整編譯器警告層級,又擔心真的出錯時,又不知道。如微軟舉的例子:for (int i = 0; i < 10; i++) ;{ Console.WriteLine("OK");}理想情況下,空語句用一個nop來指明也不錯,但我找不到類似的這種語句,後來發現對空語句前後加入一個花括弧,也會讓編譯器停止提示。目前就暫時用這種方法吧if (i == 0) {
屬性的代碼會特別一些,是由get與set組成,重載時,有時只要重載其set代碼,需要如何處理?首先是基類屬性要加上virtual,然後子類就可以這樣寫(假設只要重載set): public override int x { set { if (value<0) m_x=0; else if (value>20) m_x=20; else m_x=value;
目前,基類的所有公開的資料成員與成員函數,以及所有protected的資料成員與成員函數都會被子類一一繼承。但會不會有時候要把基類的一些介面給屏蔽掉呢?好像是沒什麼具體執行個體,但瞭解一下也是可以的。查網路上的一些方法,一般是方法重寫,裡面什麼內部都沒有。這樣說來,也只是基類如果執行該方法,編譯器是不會報錯的,只是沒有任何語句在裡面執行而已。方法重寫時,基類方法要標為virtual,子類的方法標為override,這樣即可。using System;static class m{ static
如何定義公用常量?得到的答案是:在公用類中定義,任何地方就可以直接使用。例如我有一個公用類GGL,代碼如下:using System;namespace A_TX{ public class GGL { public GGL() { } …… }}現在加入這兩行:using System;namespace A_TX{ public class GGL { public const long XMXZ2007 = 700; public const