簡體   English   中英

php $$ var等同於vb.net(vb2010)

[英]php $$var equivalent in vb.net (vb2010)

我正在VB.NET中編寫程序,我需要獲取一個其字符串值是動態獲取的變量。 就像在PHP中一樣:

$text = "new_var" (gotten dynamically)

$$text = 100

我想在VB.NET中做到這一點。

VB.NET中的直接等效項稱為反射 通過反射,您可以在運行時檢查類型的名稱及其成員。 但是,通常僅應將其用作最后的手段。 通常,在切換語言時,直接等效不是最佳選擇,因為范例不同。 即使您確實使用了反射,它也不適用於局部變量,因此您可能仍然需要對代碼進行重新設計。

更好的解決方案可能是使用Dictionary對象。 .NET中的Dictionary類是哈希表的實現,可讓您輕松存儲鍵/值對。 因此,您可以將其存儲在Dictionary ,而不是將值存儲在變量中,如下所示:

Dim d As New Dictionary(Of String, Integer)()
d("new_var") = 100

然后,不用按其字符串名稱查找變量,只需使用其鍵訪問Dictionary中該項的值,如下所示:

Dim text As String = d("new_var")

(Of String, Integer)部分可能會使您感到困惑。 這些參數指定鍵的類型以及“ Dictionary中每個項目的值。 第一個參數是鍵的類型,第二個參數是值的類型。 因此,換句話說,您希望Dictionary每個項目的鍵(例如“ new_var”)為String ,並且希望Dictionary中每個項目的值(例如100)為Integer 如果您希望能夠存儲任何類型的對象,則可以始終將其聲明為Dictionary(Of String, Object) ,但是最好盡可能保留指定的類型。 這樣更安全。

如果必須使用反射,最好先嘗試使用屬性解決方案,如果可能的話。 但是我懷疑您真的需要反思,因為聽起來您正在嘗試做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM