[.NET] 選用介面與抽象類別的原則

這種問題大概也是學 OOP 的人最會問的十大 FAQ 之一,介面和抽象類別都有對其實作者與衍生類別有相當的強制力,因此如果只是要強制實作者必定要實作某些方法或屬性的話,其實這兩種都能用,不過實際上在用時還是有差異的,這些差異要看你的原始目的以及強制力的範圍而定。

...繼續閱讀 »

[.NET][Architecture][Design Patterns] 切面導向設計 (Aspect-Oriented Programming, AOP) 的平台實作 (1) - 概念

切面導向設計是一個很有趣的技術與設計架構,它可以允許開發人員在程式執行時期在方法 (method) 中植入共用的一些操作,而且不需要由開發人員自己加,直接在核心系統中註冊就能得到植入操作的功能,最常見的例子就是記錄 (logging)...

...繼續閱讀 »

[.NET] 動態語言能力:自製 dynamic 物件 (1): ExpandoObject 物件

dynamic 型別,這個由 C# 4.0 (.NET Framework 4.0) 開始,打開了 C# 這個編譯式語言的動態之路,它的執行時期決議機制,使得開發人員能在只知道它的成員的情況下即可呼叫使用,它是動態語言執行期 (Dynamic Language Runtime, DLR) 的一部份,相對於 CLR (Common Language Runtime) 需要編譯才會產生相關的程式結構,在 DLR 的機制下,程式只在執行期才會解析相關的程式結構,並產生執行器所需要的資訊,而由於 DLR 是在 CLR 之上,使得 DLR 平台可完全相容於 CLR,並且與 CLR-compliant 的平台與程式語言相互使用。

...繼續閱讀 »

[Code隨手寫] 樂透對獎程式兼新年恭賀

適逢虎年除夕,即將邁入兔年的前一刻,台彩宣布百萬中獎的100個號碼,但因為一張一張對真的會眼花,索性花了十來分鐘撰寫了一支小程式,由電腦去做這件事,雖然對的結果 ... 沒中 Orz,但其實寫下去也是蠻有趣的,但會不會再改成真的可以對獎的程式,那就看我想不想做了。順道藉此文恭祝大家新年開運旺旺來,心想事成,萬事如意。

...繼續閱讀 »