0

非常に長い C# Windows フォームがあり、多くの場所で同じ文字列を使用する必要があります。それを定義するか、ローカル関数で文字列を使用する必要がありますか?

例えば

グローバル外部関数では、次を定義する必要があります。

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

または、内側の文字列を使用する必要がありますか?他の提案はありますか?

4

3 に答える 3

2

同じリテラル文字列であれば問題ありません。それらは通常インターンされます。これは基本的に、コンパイラが見たリテラルを記憶し、同じもののすべての出現がメモリ内の単一の文字列オブジェクトへの参照であることを意味します。ただし、コード内に「マジック ナンバー」が含まれないようにするために、それらをどこかで宣言することは意味があるかもしれません。

于 2013-04-21T16:18:53.580 に答える
1

スコープをできるだけ小さくしてください。これにより、プログラム ロジックが推論しやすくなります (小さなスコープにのみ存在する変数は、そのスコープにのみ影響し、そのスコープによって影響を受ける可能性があります)。

いくつかのグローバル変数の代わりに多くのローカル変数を宣言しても、パフォーマンスへの影響は事実上ありません。例外は、関数が非常に深く再帰することが予想される場合です。ただし、その場合でも、いくつかのローカル変数宣言のオーバーヘッドは通常無視できます。

于 2013-04-21T16:20:30.420 に答える