c# 变量用法

本文关键字:用法 变量 | 更新日期: 2023-09-27 18:35:31

我使用 c# winforms,想知道如何编写更好以及为什么。

if(txtName.Text == "John")
    ;

String name = txtName.Text
if (name == "John")
    ;

编辑:谢谢你们帮助了我很多!!

c# 变量用法

第二个版本毫无意义 - 它更长,可读性较差,并且引入了一个额外的变量(尽管一个好的编译器会摆脱它,假设它没有在其他地方使用)。

在这两个选项中,这个更好:

if(txtName.Text == "John")

虽然我会选择第三个:

if(txtName.Text.Equals("John", StringComparison.InvariantCultureIgnoreCase)

您可能希望StringComparison选项是不同的枚举值,具体取决于您希望如何进行比较。

为了简单起见,我会选择:

if(txtName.Text.Equals("John"))

也许我错了,但其他人正在回答一些复杂的场景,这不是 OP 建议的情况。

什么更好?

其实是一样的。有一个区别:第一种方法,您将控件的文本存储在变量中,然后检查它是否等于 John。第二种方法执行相同的操作,但它通过调用属性直接获取控件的文本Text访问其字符串值。

何时

使用变量以及何时直接访问属性?这只是一个假设,因为这将取决于每个特定的用例,但通俗地说,如果您访问其对象(文本)只是为了在某个时刻检查它,请直接调用Text属性,否则,您希望将其存储在某个变量中,如果:

  • 如果您想在不影响其所包含的文本的情况下与Text进行一些连接(如果您将其连接到Text,您也将在应用程序用户界面中修改它!

  • 您处于多线程环境中,并且希望Text处于当前状态,因为它可以更改,因为用户界面可供用户使用,并且可以在某些操作期间更改其值。

  • 你只是喜欢变量!如果您发现使用变量可以更好地阐明您的代码并增加意义,为什么不呢?如今的电脑,甚至手机,都有很多内存,一个、两个或三个变量不会改变任何东西(也许多1KB?哇!)。

就这样。

阅读在

.NET Framework 中使用字符串的最佳实践。

if (String.Equals(txtName.Text, "John", StringComparison.OrdinalIgnoreCase)) {
   // ...Code.
}

对于字符串比较,我建议:

string.compare(strA, strB, stringComparisonMethod)

对于访问文本,没关系,第二种方式更友好,但两者都会做同样的事情

我认为后者更好,因为您将使用变量较少,即 name .除了我看不出任何区别(造型显然取决于你自己)

如果你在代码的其他部分使用该值,我会定义一个变量。否则,请使用较短的版本。

在 C# 中,您不必使用 .等于比较字符串(响应注释)。== 做同样的事情。

if(txtName.Text == "John")

这是您展示的这些更传统和更有效的方式。

String name = txtName.Text
if (name == "John")
    ;

声明额外的变量"name"将增加代码大小,除了增加程序内存之外,还有任何好处。一旦我尝试并发现声明额外的变量并为其分配文本,然后访问此变量而不是文本属性 txtName.Text 使其效率低于通过属性访问的效率。