在for / foreach循环中声明相同的对象

时间:2012-09-13 01:26:07

标签: c# object

在foreach循环中声明一个对象是否可以?我的main方法有一个for循环,它调用也有for循环的method1。我只想更改同一个对象的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());
}

3 个答案:

答案 0 :(得分:3)

如果这是你的意图,可以在循环中声明一个对象。在这种情况下,循环的每次迭代都将创建一个GetFile的新实例。

您可以在循环外部移动声明以重用相同的对象:

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

答案 1 :(得分:2)

是的,这是一件普通而且正常的事情。

唯一的问题是如果new GetFile()是一个缓慢的操作。然后你想在循环之外声明它以提高性能。

答案 2 :(得分:0)

你不需要实例化GetFile X次。

我当然会工作,但它不干净