C# 直接从控件中读取字符串而不是将其移动到变量中有什么显著的好处吗?

C# 直接从控件中读取字符串而不是将其移动到变量中有什么显著的好处吗?,c#,optimization,readability,C#,Optimization,Readability,鉴于上面的代码…如果我不需要将textbox数据移动到字符串变量中,那么最好直接从控件读取数据吗 就性能而言,最好不要创建任何不必要的变量,这些变量会在不需要时占用内存。或者,在这种情况下,它在技术上是正确的,但由于所讨论的数据的大小,不会产生任何真实的结果 请原谅,我知道这是一个非常基本的问题 永远不要缓存可以计算的内容。你的推理是正确的。事实上,这根本不是一个非常基本的问题。就性能而言,很难说没有测量。在这种情况下,内部作用域中的局部变量可能会被智能编译器完全优化。它可能只存在于CPU寄存器

鉴于上面的代码…如果我不需要将textbox数据移动到字符串变量中,那么最好直接从控件读取数据吗

就性能而言,最好不要创建任何不必要的变量,这些变量会在不需要时占用内存。或者,在这种情况下,它在技术上是正确的,但由于所讨论的数据的大小,不会产生任何真实的结果


请原谅,我知道这是一个非常基本的问题

永远不要缓存可以计算的内容。你的推理是正确的。

事实上,这根本不是一个非常基本的问题。就性能而言,很难说没有测量。在这种情况下,内部作用域中的局部变量可能会被智能编译器完全优化。它可能只存在于CPU寄存器中

引入局部变量可以使代码更具可读性,如果可以的话,就这样做吧


另见。。。尤其是被接受的答案。

没有验证?通常我缓存字符串并将其传递给业务层进行验证,如果验证成功,则将缓存的字符串保存到数据库中。从窗口再次获取字符串比从缓存中读取值要慢。

这是我通常会做的。为了可读性,我会将其移动到一个变量中,但当我工作时,突然想到它可能是无用的,甚至会损害应用程序(缺少可读性),它不会对这样的内部范围造成任何损害。我添加了另一个相关的链接。我已经准备好了验证器。我想这更像是一个基于理论的问题。不特定于某个场景。
sqlInsertFrame.Parameters.AddWithValue("@UserName", txtUserName.txt);