在IronPython中,C#“using”块的等价物是什么?

时间:2009-11-18 16:34:55

标签: ironpython idisposable

在IronPython中,这相当于什么?它只是一个尝试 - 最终阻止?

using (var something = new ClassThatImplementsIDisposable())
{
  // stuff happens here
}

5 个答案:

答案 0 :(得分:27)

IronPython支持将IDisposablewith语句一起使用,因此您可以编写如下内容:

with ClassThatImplementsIDisposable() as something:
    pass

答案 1 :(得分:6)

IronPython(截至2.6版本候选版本)支持with语句,该语句以类似于使用的方式包装IDisposable对象。

答案 2 :(得分:4)

With statement。例如:

with open("/temp/abc") as f:
    lines = f.readlines()

答案 3 :(得分:2)

with声明:http://www.ironpythoninaction.com/magic-methods.html#context-managers-and-the-with-statement

with open(filename) as handle:
    data = handle.read()
    ...

答案 4 :(得分:0)

使用块实际上是以下内容:

try {
  (do something unmanaged here)
}
finally {
  unmanagedObject.Dispose();
}

希望这有助于您理解using语句背后的逻辑。