这是速度问题。我有以下代码:
if (MyXMLReader.SearchForValue(command, new List<string>() { "/Command/Descriptions/Description/System" }, ((TabDocument)dockManager.ActiveDocument).version))
{
txtBox_desc.Text = MyXMLReader.GetValue(command, "/Command/Descriptions/Description[" + MyXMLReader.SearchForValue_Int(command, new List<string>() { "/Command/Descriptions/Description/System" }, ((TabDocument)dockManager.ActiveDocument).version) + "]/Content");
}
if (MyXMLReader.SearchForValue(command, new List<string>() { "/Command/Uses/Use/System" }, ((TabDocument)dockManager.ActiveDocument).version))
{
txtBox_use.Text = MyXMLReader.GetValue(command, "/Command/Uses/Use[" + MyXMLReader.SearchForValue_Int(command, new List<string>() { "/Command/Uses/Use/System" }, ((TabDocument)dockManager.ActiveDocument).version) + "]/Content");
}
if (MyXMLReader.SearchForValue(command, new List<string>() { "/Command/Notes/Note/System" }, ((TabDocument)dockManager.ActiveDocument).version))
{
txtBox_notes.Text = MyXMLReader.GetValue(command, "/Command/Notes/Note[" + MyXMLReader.SearchForValue_Int(command, new List<string>() { "/Command/Notes/Note/System" }, ((TabDocument)dockManager.ActiveDocument).version) + "]/Content");
}
我应该创建一个新的string
变量来保存
((TabDocument)dockManager.ActiveDocument).version?
这会带来更快的速度和响应能力吗?这会是坏事还是好事?
答案 0 :(得分:8)
简而言之,是。
重复投放ActiveDocument
到TabDocument
的成本可能微乎其微,但如果您希望优化,将其存储到中间变量是迈向积极的一步。
但为什么你真的应该这样做,是为了代码可读性。
答案 1 :(得分:3)
它肯定会提高可读性。
关于速度和响应能力,唯一可以改善任何事情的方法是ActiveDocument
或version
属性执行多次计算以获得其返回值。
答案 2 :(得分:3)
您应该使用只读变量。它会更快,并有助于使您的代码更具可读性。
我们应该尽可能避免写两次同样的事情。
希望这有帮助
答案 3 :(得分:1)
ActiveDocument和String都是间接的一个级别。所以,他们都会花费相同的时间。
您将添加使用此方法创建“String”对象的额外开销。
但在宏伟的计划中,所有这些都应该是令人难以置信的微不足道。如果你想提高你的速度,你应该去别处看看!