0

我有一个很长的 c# windows 窗体,我需要在很多地方使用相同的字符串。我应该只定义它还是在本地函数中使用字符串?

例如

在全局外部函数中,我应该定义以下内容:

static myUrl_A = "abc.com";
static myUrl B = "xyz.com";

还是我应该只使用内部字符串?还有其他建议吗?

4

3 回答 3

2

正如@millimoose 提到的,性能影响几乎没有实际意义,尽管何时可以通过实习共享字符串是有限制的。

更重要的是,如果该字符串真的只有一个值,你真的应该在一个地方将字符串表示为一个常量。这样做有两个好处:

  1. 您不会意外地在两个不同的地方给同一个字符串不同的值(比如拼写错误)。
  2. 如果您确实在指定的一个位置打错字,您只需在那里更改,而不是在您复制的 20 个文件中进行更改。
于 2013-04-21T16:29:52.353 回答
2

如果它是相同的文字字符串,那没关系。它们通常是interned,这基本上意味着编译器会记住它所看到的文字,并且所有出现的相同文字都是对内存中单个字符串对象的引用。不过,在某处声明它们以避免在代码中出现“幻数”可能仍然有意义。

于 2013-04-21T16:18:53.580 回答
1

保持范围尽可能小——这使您的程序逻辑更容易推理(仅存在于小范围内的变量只能影响该范围,并受该范围的影响)。

声明许多局部变量而不是一些全局变量几乎没有性能影响。例外情况是您的函数预计会非常深入地递归。但即便如此,一些局部变量声明的开销通常也可以忽略不计。

于 2013-04-21T16:20:30.420 回答