2019/06/26

20190626-程式-讀了別人技術文件後的特別之處(未寫完)

(這是目前公司需讀的一份技術文件)

當然我這篇也不是要全部記錄內容,而是將幾個對我的技術思考有所”衝擊”的部份,捉出來做記錄。

加上自已的”心得”。


此乃參考了此作者:Harry 的資料 (他原在目前公司工作,今年才離開)


Effective C# 條款一: 使用屬性代替公有欄位 | Level Up

>>   

這額外的好處,是可以   a. 加上lock(this)的機制 (可執行於多執緒)     b. 可以輕易的加上 EventHandler (方便外部override)

    ex:

public event EventHandler  NameChanging;
public string Name{
set { _name = value ; NameChanging (this,new EventArgs());}}
//這樣就可以讓外部控制了。

Effective C# 條款二: 運行時常數優於編譯時常數 | Level Up

a. 編譯時常數 (Const)  vs  運行時常數 (ReadOnly)

b. Const 會在”編譯”過後就被換成常值。

c. 效率 Const > ReadOnly  ; 彈性  ReadOnly >Const


Effective C# 條款三: 運算子is或as優於強制轉型 | Level Up

a. 型別轉換: ( o as MyClass)  >(優於) > ((MyClass) o)  ;因為 安全/效能 ,不用加try … catch。

>>我還真不知有這樣的差異。


Effective C# 條款四: 使用ConditionalAttribute替代#if條件編譯 | Level Up

[Conditional(“TRACE_ON”)]

Effective C# 條款六: 明辨值類型與參考類型的使用場合 | Level Up

Effective C# 條款七: 將值類型盡可能實現為具有常量性與原子性的類型 | Level Up


Effective C# 條款八: 確保0為值類型的有效狀態 | Level Up

Effective C# 條款九: 理解幾個相等判斷之間的關係 | Level Up

Effective C# 條款十: 理解GetHashCode()方法的缺陷 | Level Up

Effective C# 條款十一: 優先採用foreach迴圈 | Level Up

Effective C# 條款十二:變數初始器優於賦值語句 | Level Up

Effective C# 條款十四:利用建構子鏈 | Level Up

Effective C# 條款十五:利用using和try/finally語句來清理資源. | Level Up

Effective C# 條款十六:盡量減少記憶體垃圾 | Level Up

Effective C# 條款十七:盡量減少裝箱與拆箱 | Level Up

Effective C# 條款十八:實現標準Dispose模式 | Level Up

More Effective C# 條款四十九: 考慮為大型物件使用弱引用 | Level Up



C# 技術

1.用屬性(Property)代替欄位(Field)

0 意見 :

張貼留言