0
假設我有幾個類,如class1
和class2
。這些類可以有很多屬性,甚至可以從執行變爲另一個(取決於軟件的版本)。用一個字符串中的值替換變量名稱
用戶可以用純文本定義「公式」,軟件應該將「變量」(類+屬性)的名稱與其實際值進行轉換。因此,給定class1
的實例和class2
的實例,我應該循環屬性(和變量)並檢查公式是否包含它們。對於每一個我應該用值替換名稱。
例如,我可以有:
Dim myClass1 As Class1 = New Class1()
myClass1.PropertyA = "FOO"
myClass1.PropertyB = 5
Dim myClass2 As Class2 = New Class2()
myClass2.PropertyX = "BAR"
myClass2.PropertyY = 7
而且用戶可以宣佈這個公式(此公式中VB.NET被簡化,但實際上它可以在SQL或不同類型的公式。是純文本,所以是在代碼的字符串):
Dim i = 0
While (i + myClass1.PropertyB) < myClass2.PropertyY
str = "myClass1.PropertyA" & "myClass2.PropertyX"
i += 1
End While
的結果,替換後,應該是:
Dim i = 0
While (i + 5) < 7
str = "FOO" & "BAR"
i += 1
End While
現在,類和變量可能會有所不同,所以我無法搜索特定的字符串。我認爲我應該使用反思,但我不習慣它,如果存在更好的解決方案,我寧願避免它。任何建議和/或最佳做法?