抽象屬性可以放在介面的定義裡。如:
public inte***ce inamevaluepair
t value
}所有私有欄位的訪問都建議使用屬性來處理,類中所有的資料成員都應當是私有的。
屬性在fcl(framework類庫)內部其實就是乙個方法。
屬性也可以是虛擬的(virtual),針對單獨的get或set訪問器可以有單獨的訪問修飾符。如:
public virtual string name
jit編譯時使屬性稱為內聯方法,所以速度和普通資料成員幾乎一樣.
屬性裡不要做冗長的計算或者跨應用的訪問(如查詢資料庫).
c#有兩種常量型別:編譯時常量(用const宣告)與執行時常量(用readonly宣告)。
編譯時常量可以在方法內宣告,而執行時常量不可以。
編譯時常量只能是原子型別(內建整型、浮點型、列舉、string等),而執行時常量可以是任何型別。
最重要的是readonly型別變數在執行時被解釋,il會生成對應物件的常引用 ,而const變數會被il生成對應的值,而這樣會對後期的維護造成不便。如下**:
public class usefulvalues
而在另一程式集,你引用了這些值:
for(int i = usefulvalues.startvalue;i
console.writeline("value is ", i);
然後經過一段事件你對原程式集進行了修改,修改後:
public class usefulvalues
此時你希望輸出是
value is 105
value is 106
...value is 119
而實際將什麼都不輸出,因為此時的for迴圈已經是如下**:
for(int i = usefulvalues.startvalue;i<10; i++)
console.writeline("value is ", i);
const變數會比readonly變數要稍微快一點,因為il是直接為其生成常量字串或數字,而readonly的靈活性要更好,因此我們應當偏愛readonly.
請使用as來進行兩個物件之間的型別轉換,**換失敗時返回null,不會引發異常)因為它更安全、更有效。
注意,as 運算子只執行引用轉換和裝箱轉換,as 運算子無法執行其他轉換。
as與is操作符不能執行任何的使用者自定義型別轉換,它從不自己構造新物件。而cast則可實現型別轉換,它會轉換乙個物件為請求的型別,如果轉換乙個高精度型別到低精度型別,則可能會丟失資訊。
注意:as操作符不能用於值型別,值型別只能用cast,而此時會產生裝箱/拆箱操作,而此時一般建議會使用is操作符來先判斷。如:
object o = factory.getvalue();
int i = 0;
if(o is int)
i=(int)o;
is操作符應該用在不能使用as操作符進行轉換的時候。is檢查物件是否與給定型別是否相同,返回true/false。
好的物件導向設計應當避免進行型別轉換,但是有時你不得不進行型別轉換的時候,使用as和is操作符可以更清晰地表達你的目的。
#if/#endif太容易濫用,建立的**也很難理解和除錯。c#增加了條件特性來指示乙個方法是否應該被呼叫。它比#if/#endif更清晰。
#if/#endif方式:
private void checkstatebad()
如果在release模式編譯生成,此方法將會是乙個空方法。如果頻繁地呼叫該方法也會產生一部分開銷。而有時因為#if/#endif的位置不當,release編譯時會產生一些錯誤,
條件特性方式:
[conditional("debug")]
private void checkstatebad()
該特性告訴編譯器該方法只有在檢測到有debug環境變數時有效.
條件特性相比#if/#endif會生成更有效的il**.
用C 程式設計的建議
1 如果可能盡量使用介面來程式設計 net框架包括類和介面,在編寫程式的時候,你可能知道正在用.net的哪個類。然而,在這種情況下如果你用.net支援的介面而不是它的類來程式設計時,會變得更加穩定 可用性會更高。請分析下面的 1 private void loadlist object items,...
網上創業的幾個建議
1 先別辭職 網上創業是需要時間的,建立乙個 並從中賺取利潤,不是一件簡單的事情。據我的經驗,如果不走邪門歪道的話,至少也得花幾個月的時間。你需要做市場調查,需要建 寫內容,需要推廣,這些都不是幾天能做好的。最好的方式就是白天有其他正式的工作,業餘時間開始在網上創業。當你從 上賺的錢足夠支付你生活費...
高效會議的幾個建議
通常來講,會議的作用是用時間來傳達訊息或者換取結論,但低效的會議不僅得不到應有的效果,還耽誤時間,為人詬病,影響領導力.通過觀察,我對高效會議總結了一些建議,希望能對會議的效率有所幫助 一.提前做好會場布置 會議組織者建議先到會場,並做好投影儀布置等準備工作,避免與會人員都到場後一起等待,浪費時間....