C# 在循环中重新创建大位图之前是否需要Dispose()?

C# 在循环中重新创建大位图之前是否需要Dispose()?,c#,C#,假设我有代码: void Method1() { Bitmap bitmap1; foreach (string name in OpenFileDialog1.FileNames) { bitmap1 = new Bitmap(name); ... // process bitmap bitmap1.Dispose(); } } 在循环中是否需要Dispose()。该位图对象在文件上保持内存映射打开 此代码结构的更好方法

假设我有代码:

void Method1() {
    Bitmap bitmap1;
    foreach (string name in OpenFileDialog1.FileNames) {
        bitmap1 = new Bitmap(name);
        ... // process bitmap
        bitmap1.Dispose();
    }
}

在循环中是否需要Dispose()。该位图对象在文件上保持内存映射打开

此代码结构的更好方法可以使用
使用

void Method1() {
    foreach (string name in OpenFileDialog1.FileNames) {
        using (var bitmap1 = new Bitmap(name))
        {
            ... // process bitmap
        }
    }
}

标记答案的可能副本应该解释您需要处理它的原因。
使用
似乎也包含在链接副本中► 为什么用
var
而不是
Bitmap
声明bitmap1?@PauloBarretto:我在decl时间赋值时总是使用var。typesystem每次都会推断出正确的类型。