如果我“使用”BinaryWriter,我是否还需要调用Close? - F#

时间:2016-04-16 13:46:43

标签: f#

我理解如果我正在使用BinaryWriter,并且我用“use”而不是“let”声明它,那么当我完成它时它将自动调用“Dispose”方法。这个Dispose是否也在BinaryWriter上调用“Close”,或者我是否也需要调用Close,以确保底层流也被关闭?

function filter(arr, func) {

    var result = [];

    for (var i = 0; i < arr.length; i++) {

        var value = arr[i];
        if (func(value)) {
            result.push(value);
        }
    }

    return result

}

function inBetween(a, b) {
    return function(x) {
        return a <= x && x <= b;
    }
}

function inArray(arr) {
    return function(x) {
        console.log(x)
        return arr.indexOf(x) != -1;
    }
}

var arr = [1, 2, 3, 4, 5, 6, 7];

alert(filter(arr, function(a) {
  return a % 2 == 0
})); // 2,4,6

alert( filter(arr, inBetween(3, 6)) ); // 3,4,5,6

alert( filter(arr, inArray([1, 2, 10])) ); // 1,2

1 个答案:

答案 0 :(得分:3)

BinaryWriter.Close州的documentation

  

Close的这个实现调用Dispose方法传递一个true   值。

所以不需要它,因为退出Dispose的范围时会调用use

如果您查看source for BinaryWriter,可以看到CloseDispose都只是致电Dispose(true)