文章目錄
關於 GetType 的一些事
之前在 LINQ to Objects VS LINQ to Entities 中提到 LINQ to Objects 是一系列 IEnumerable
及 IEnumerable<T>
的擴充方法,而 LINQ to Entities 是一系統 IQueryable
及 IQueryable<T>
的擴充方法,透過物件繼承的型別可以很容易區分出 LINQ to Objects
或是 LINQ to Entities
,只是該如何得知物件的繼承內容呢?
以下內容是 黃忠成老師 在 LINQ - 強者之道
課程中所使用的小技巧,我覺得很有幫助,紀錄一下
關於 GetType 方法
官方文件可以參考 Object.GetType Method
Object
class 所實作的方法也就是說適用於所有 .NET Framework 物件
GetType 方法回傳的五種 .NET Framework type
Classes
繼承自
System.Object
Value types
繼承自
System.ValueType
Interfaces
繼承自
System.Object
,從 .NET Framework 2.0 開始出現Enumerations
繼承自
System.Enum
Delegates
繼承自
System.MulticastDelegate
取得物件的基底型別
object.GetType().BaseType
得知基底型別後,就可以進一步了解基底型別是否有實作其他細節
取得物件實作的 Interface
object.GetType().GetInterfaces()
可以直接得知物件實作哪些 Interface,進而了解基於 Interface 所擁有的功能
心得
之前使用 GetType
都是為了 reflection,剛好這次 黃忠成老師示範了如何使用 GetType
來確認物件進行 linq 操作時所使用的是 LINQ to Objects
或是 LINQ to Entities
,也讓我學到如何在使用 linq 操作物件時更明確地知道我使用的技術細節,再次感謝 黃忠成老師
參考資訊
文章作者 Yowko Tsai
上次更新 2021-11-02
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。