2010-01-10 22 views
1

應該是什麼更合適的還是什麼建議無論從反射與後期綁定在VB.NET使用:vb.net反射與晚期綁定?

'Type can be various objects that have a common property for sure.' 
Dim type = sender.GetType() 
Dim prop = type.GetProperty("Text", 20) 
Dim value = property.GetValue(sender, Nothing) 

與:

Dim value = sender.Text 

回答

1

在幕後,他們都做同樣的東西(相對來說)。 VB.NET的後期綁定功能是在運行時通過程序集元數據查詢完成的,這正是反射的全部內容。

您的第一種方法的好處之一是您有機會以更細緻的方式處理錯誤。

+0

我想我會選擇什麼更可讀和更方便 - 更好地說,我會利用VB的功能! – Shimmy 2010-01-11 00:18:43

0

是不是sender.Text總是一個字符串?所以這種類型的價值可以在編譯時推斷出來,使後者成爲早期綁定的一個例子?

+0

不,它總是返回'object',所以兩者都是相同的。 – Shimmy 2010-01-11 00:17:54

0

如果確實使用後期綁定,則可以將提取屬性的方法放入具有Option Explicit = Off的部分類中。這樣,你仍然需要在代碼的其餘部分進行類型檢查。

+0

我從來沒有把Option Explicit,這就是我非常喜歡VB的原因之一 – Shimmy 2010-01-11 02:57:10

+0

我想你的意思是'Option Strict'? – 2013-06-27 05:07:03