1

foreachループ内でオブジェクトを宣言しても大丈夫ですか?私のメインメソッドには、forループもあるmethod1を呼び出すforループがあります。同じオブジェクトのsetFileFolder値を変更したいのですが、同じオブジェクトを再度宣言してからその値を変更しても大丈夫ですか?

サンプルコード:

string[] arrs = { "a", "b", "c", "d", "e", "f", "g", "h", "i", };

foreach(string arr in arrs)
{
    GetFile gf = new GetFile();
    gf.setFileFolder(arr);
    Console.WriteLine(gf.getFileFolder());
}
4

3 に答える 3

3

これがあなたの意図であるならば、ループ内でオブジェクトを宣言することはOKです。この場合、ループを繰り返すたびに、の新しいインスタンスが作成されますGetFile

宣言をループの外に移動して、同じオブジェクトを再利用できます。

GetFile gf = new GetFile();
foreach(string arr in arrs)
{
    gf.setFileFolder(arr);
    Console.WriteLine(gf.getFileFolder());
}
于 2012-09-13T01:29:21.137 に答える
2

はい、それは一般的で通常のことです。

唯一の問題はnew GetFile()、動作が遅い場合です。次に、パフォーマンスを向上させるために、ループの外側で宣言する必要があります。

于 2012-09-13T01:28:50.997 に答える
0

GetFileをX回インスタンス化する必要はありません。

もちろん働きますが、きれいではありません

于 2012-09-13T01:29:07.090 に答える