gpt4 book ai didi

c# - 从C#中的文本文件执行代码行

转载 作者:太空宇宙 更新时间:2023-11-03 17:55:08 25 4
gpt4 key购买 nike

我有一个文本文件看起来像:

AssembleComponent Motor = new AssembleComponent;
AssembleComponent Shaft = new AssembleComponent;
......

Motor.cost = 100;
Motor.quantity = 100;
Shaft.cost = 10;
Shaft.quantity = 100;
......


我希望在C#中执行这些代码行,以便将这些Motor.cost,Motor.quantity,Shaft.cost,Shaft.quantity变量存储在内存中,以便以后进行计算。

我该怎么做?

最佳答案

而是将其存储为XML

<?xml version="1.0" encoding="UTF-8"?>
<Components>
<Component name="Motor" cost="100" quantity="100" />
<Component name="Shaft" cost="10" quantity="100" />
</Components>


假设您有这个定义

public class AssembleComponent
{
public decimal Cost { get; set; }
public int Quantity { get; set; }
}


像这样加载

var components = new Dictionary<string, AssembleComponent>();
XDocument doc = XDocument.Load(@"C:\Users\Oli\Desktop\components.xml");
foreach (XElement el in doc.Root.Descendants()) {
string name = el.Attribute("name").Value;
decimal cost = Decimal.Parse(el.Attribute("cost").Value);
int quantity = Int32.Parse(el.Attribute("quantity").Value);
components.Add(name, new AssembleComponent{
Cost = cost, Quantity = quantity
});
}




然后,您可以像这样访问组件

AssembleComponent motor = components["Motor"];
AssembleComponent shaft = components["Shaft"];


注意:在运行时通过调用编译器动态创建变量名不是很有用,因为您需要在编译时(或设计时,如果您愿意)知道它们,以对它们进行有用的处理。因此,我将组件添加到字典中。这是动态创建“变量”的好方法。

关于c# - 从C#中的文本文件执行代码行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13143225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com