這種問題大概也是學 OOP 的人最會問的十大 FAQ 之一,介面和抽象類別都有對其實作者與衍生類別有相當的強制力,因此如果只是要強制實作者必定要實作某些方法或屬性的話,其實這兩種都能用,不過實際上在用時還是有差異的,這些差異要看你的原始目的以及強制力的範圍而定。
[.NET] 選用介面與抽象類別的原則
- 6007
- 0
- C# and VB.NET
- 2017-03-01
這種問題大概也是學 OOP 的人最會問的十大 FAQ 之一,介面和抽象類別都有對其實作者與衍生類別有相當的強制力,因此如果只是要強制實作者必定要實作某些方法或屬性的話,其實這兩種都能用,不過實際上在用時還是有差異的,這些差異要看你的原始目的以及強制力的範圍而定。
切面導向設計是一個很有趣的技術與設計架構,它可以允許開發人員在程式執行時期在方法 (method) 中植入共用的一些操作,而且不需要由開發人員自己加,直接在核心系統中註冊就能得到植入操作的功能,最常見的例子就是記錄 (logging)...
前一篇我們說明了使用 ExpandoObject 輕易自製出動態物件的能力,光是使用 ExpandoObject 就能滿足我們大多數的需求,不過若是想要進一步的深入到動態語言的機制來建立動態物件的話,那麼我們可以利用 DynamicObject 物件來實作。
dynamic 型別,這個由 C# 4.0 (.NET Framework 4.0) 開始,打開了 C# 這個編譯式語言的動態之路,它的執行時期決議機制,使得開發人員能在只知道它的成員的情況下即可呼叫使用,它是動態語言執行期 (Dynamic Language Runtime, DLR) 的一部份,相對於 CLR (Common Language Runtime) 需要編譯才會產生相關的程式結構,在 DLR 的機制下,程式只在執行期才會解析相關的程式結構,並產生執行器所需要的資訊,而由於 DLR 是在 CLR 之上,使得 DLR 平台可完全相容於 CLR,並且與 CLR-compliant 的平台與程式語言相互使用。
在上計算機概論的程式語言章節時,老師一定都會講到編譯 (Compile) 和直譯 (Interprete) 這兩個術語,其實它們並不難懂,只是有一些行為上的差異而已。
其實會寫這支程式是因為 Allen Kuo 大在 BS 上發出的一個問題...
適逢虎年除夕,即將邁入兔年的前一刻,台彩宣布百萬中獎的100個號碼,但因為一張一張對真的會眼花,索性花了十來分鐘撰寫了一支小程式,由電腦去做這件事,雖然對的結果 ... 沒中 Orz,但其實寫下去也是蠻有趣的,但會不會再改成真的可以對獎的程式,那就看我想不想做了。順道藉此文恭祝大家新年開運旺旺來,心想事成,萬事如意。
[Office開發系列] C# 4.0 在 Office (含 2003-2010) 開發上的支援
[VS2010] Visual Studio 的程式碼成員提示強化功能 (Intellisense Improvement)
[VS2010] C# 4.0 新功能:dynamic 型別
[VS2010] C# 4.0 語言新功能:Named Argument and Optional Parameters
在類別中使用中介資料宣告,讓開發人員在使用你的類別時可簡單的以宣告方式即可設定元件資訊,而不需要寫程式。