[英]How can I improve the performance and design of this code
Down below is my code I'm currently using, but is there a way to make it cleaner and shorter? 下面是我当前正在使用的代码,但是有没有办法使它更简洁,更短? I want my code to look short efficient and nice looking.
我希望我的代码看起来效率低下,外观漂亮。 My teacher said something with "do it with a loop" but I can't figure out what that loop does and how it would work.
我的老师说了一些“用一个循环来做”,但是我不知道该循环能做什么以及它如何工作。
{
XmlWriter xmlWriter = XmlWriter.Create(PATH);
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("Config");
xmlWriter.WriteStartElement("TBSOMS");
xmlWriter.WriteString(TBSOMS.Text);
xmlWriter.WriteEndElement();
xmlWriter.WriteStartElement("TBWVB");
xmlWriter.WriteString(TBWVB.Text);
xmlWriter.WriteEndElement();
xmlWriter.WriteStartElement("TBWNB");
xmlWriter.WriteString(TBWNB.Text);
xmlWriter.WriteEndElement();
xmlWriter.WriteStartElement("TBASPMM1");
xmlWriter.WriteString(TBASPMM1.Text);
xmlWriter.WriteEndElement();
xmlWriter.WriteStartElement("TBASPMM2");
xmlWriter.WriteString(TBASPMM2.Text);
xmlWriter.WriteEndElement();
xmlWriter.WriteStartElement("TBDUM");
xmlWriter.WriteString(TBDUM.Text);
xmlWriter.WriteEndElement();
xmlWriter.WriteStartElement("TBADPR");
xmlWriter.WriteString(TBADPR.Text);
xmlWriter.WriteEndElement();
xmlWriter.WriteStartElement("TBAR");
xmlWriter.WriteString(TBAR.Text);
xmlWriter.WriteEndElement();
xmlWriter.WriteEndDocument();
xmlWriter.Close();
}
I'd start with something like this... 我将从这样的东西开始...
var values = new Dictionary<string, string>
{
{ nameof(TBWVB), TBWVB.Text },
{ nameof(TBWNB), TBWNB.Text }
// .... etc ......
}
XmlWriter xmlWriter = XmlWriter.Create(PATH);
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("Config");
foreach (var item in values.Keys)
{
xmlWriter.WriteStartElement(item);
xmlWriter.WriteString(values[item]);
xmlWriter.WriteEndElement();
}
Something in the like of : 之类的东西:
private void writeElement(XmlWriter xmlwrtr, String element, var obj){
xmlwrtr.WriteStartElement(element);
xmlwrtr.WriteString(obj.Text);
xmlwrtr.WriteEndElement();
}
Which would give : 这将给:
{
XmlWriter xmlWriter = XmlWriter.Create(PATH);
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("Config");
writeElement(xmlWriter, "TBSOMS", TBSOMS)
writeElement(xmlWriter, "TBWVB", TBWVB)
// And so on
xmlWriter.WriteEndDocument();
xmlWriter.Close()
}
By creating a class variable you can access it's values in multiple methods. 通过创建类变量,您可以通过多种方法访问其值。
private static XmlWriter xmlWriter;
public void Write()
{
xmlWriter = XmlWriter.Create(Path);
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("Config");
new List<(elementDataType element, string name)> // note that you need to change "elementDataType" to your elements data type
{
(TBSOMS, nameof(TBSOMS)),
(TBWVB, nameof(TBWVB)),
// ... just list all elements in here
}.ForEach(elem => WriteElement(elem.element, elem.name));
xmlWriter.WriteEndDocument();
xmlWriter.Close();
}
private void WriteElement(var element, string name) //note that you need to change var to your elements datatype
{
xmlWriter.WriteStartElement(name);
xmlWriter.WriteString(element.Text);
xmlWriter.WriteEndElement();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.