在C#中动态执行字符串作为代码

时间:2017-03-24 06:03:39

标签: c# reflection codedom

我需要将字符串转换为可执行代码。 string位于foreach声明中。

foreach (InsuredItem _i in p.InsuredItems)
{
    string formula = "(_i.PremiumRate/100)*SumAssured";
    _i.Premium = (Execute formula);
}

公式从设置加载。这只是一个示范。我需要在foreach循环中执行字符串。 感谢。

1 个答案:

答案 0 :(得分:3)

假设你的公式是有效的C#代码,并且它使用一组已知的局部变量(这样你就可以创建一个" globals"包含所有这些变量的类型),你应该可以使用{ {3}}要做到这一点:

@IBOutlet weak var minutes: UITextField!

@IBOutlet weak var seconds: UITextField!

@IBOutlet weak var label_Timer: UILabel!

var min = 0
var sec = 0

@IBAction func btn_Timer(_ sender: UITextField) {

    min = Int(minutes.text ?? "") ?? 0
    sec = Int(seconds.text ?? "") ?? 0

    timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ViewController.timerRunning), userInfo: nil, repeats: true)

}

func timerRunning(){

    sec -= 1

    //operate on min and sec here

}