String 执行VB.NET中以字符串形式存储的代码

String 执行VB.NET中以字符串形式存储的代码,string,vb.net,parsing,runtime,String,Vb.net,Parsing,Runtime,我想知道如何将部分代码存储在对象的字符串字段中,并在运行时将其转换为可执行代码 假设我有我的班级: Public Class Car Public m_IDCar As String Public m_Brand As String Public m_Description As String Public m_Condition As String ' => here I need to store an If, or an If condition as a String, that

我想知道如何将部分代码存储在对象的字符串字段中,并在运行时将其转换为可执行代码

假设我有我的班级:

Public Class Car

Public m_IDCar As String
Public m_Brand As String
Public m_Description As String
Public m_Condition As String ' => here I need to store an If, or an If condition as a String, that will be executed at run-time.

End Class
然后是当
命令按钮1.单击()
时发生的代码:

car.m_条件的示例可以是:

car.m_Condition = "(car.m_Name=""BMW"" AND car.m_Description.Contains(parameter)) OR car.m_Brand=""AUDI"""
如果有人愿意帮助我,我需要一些关于如何实现这种方法的提示

编辑: 谢谢大卫,我已经看到了这个问题,看起来很相似。我看到用户询问如何将整个If存储在字符串中:

Dim code As String = "IIf(1 = 2, True, False)"
(提出该问题的用户使用IIf)

对我来说,最好的方法是将要计算的条件存储在一个字符串中,并且可能将要与另一个字符串中的结果进行比较的值存储在一个字符串中。例如:

Dim condition As String = "(car.m_Name=""BMW"" AND car.m_Description.Contains(parameter)) OR car.m_Brand=""AUDI"""
Dim valueToCompareWith as String = "True"
如果

If (car.m_Name=""BMW"" AND car.m_Description.Contains(parameter)) OR car.m_Brand=""AUDI"" = True) Then
'do something
End If
将成为:

If (condition = valueToCompareWith) Then '(conceptually, because in this form it's simply a String comparison that returns always False)
'do something
End If
编辑2:


感谢Proputix,我已经阅读了您关于getter和setter的提示,我没有具体说明,但是我正在处理的上下文比这个要复杂得多。我已经做了一个非常简单的例子来关注这个问题,但是我正在处理大量的对象,需要比较不同的字段,对于每个比较,If中都有不同的条件,使用不同的逻辑和不同类型的数据进行比较。

可能的重复将这些字段更改为属性,并将所有需要的代码和逻辑嵌入到getter和setter中。不需要走将strng转换为可执行代码的路线。请阅读并接受Hi-Proputinix,谢谢您的提示。我将深入研究你和大卫给我的建议。我只需要问你我问问题的时候做错了什么,因为我已经阅读了“如何提问”课程,我确信我提出了一个正确的问题。请考虑我是一个编程新手,英语不是我的第一个朗,所以我很抱歉我的错误。可能重复这些字段的属性,并嵌入所有的代码和逻辑,你想在吸气剂和设定者。不需要走将strng转换为可执行代码的路线。请阅读并接受Hi-Proputinix,谢谢您的提示。我将深入研究你和大卫给我的建议。我只需要问你我问问题的时候做错了什么,因为我已经阅读了“如何提问”课程,我确信我提出了一个正确的问题。请考虑我是编程新手,英语不是我的第一个朗,所以我为我的错误感到抱歉。
If (condition = valueToCompareWith) Then '(conceptually, because in this form it's simply a String comparison that returns always False)
'do something
End If