IronPython'da buna eşdeğer nedir? Sadece deneme bir blok mu? (2.6 salma adayları olarak)IronPython'da C# "using" bloğunun karşılığı nedir?
using (var something = new ClassThatImplementsIDisposable())
{
// stuff happens here
}
IronPython'da buna eşdeğer nedir? Sadece deneme bir blok mu? (2.6 salma adayları olarak)IronPython'da C# "using" bloğunun karşılığı nedir?
using (var something = new ClassThatImplementsIDisposable())
{
// stuff happens here
}
IronPython with
ifadesiyle IDisposable
kullanarak destekler, böylece böyle bir şey yazabilirsiniz:
with ClassThatImplementsIDisposable() as something:
pass
Kendi türleriniz için iyi bir seçenek, ancak çerçeve türleri için çalışmıyor. –
Çerçeve türleri ile çalışmadığının belirli bir nedeni var mı? –
Emin misin? Sadece StreamWriter ile denedim ve beklendiği gibi çalışıyor gibi görünüyor. –
IronPython şekilde kullanılarak benzer bir ıdisposable nesne kaydırılır with
deyimi, destekler. Bu kullandığınız deyimi arkasındaki mantık anlamamıza yardımcı olur
try {
(do something unmanaged here)
}
finally {
unmanagedObject.Dispose();
}
Hope:
kullanarak blok kaputun altında aşağıdaki aslında.
with
sözü vardır: http://www.ironpythoninaction.com/magic-methods.html#context-managers-and-the-with-statement
with open(filename) as handle:
data = handle.read()
...
Hayır. "With" ifadesi yalnızca kategori dosyası nesnelerine ait olan kilitlenebilir nesnelerle çalışır. O * değil * keyfi türlerle çalışır, diyelim, tamsayılar. – Teddy
with open("/temp/abc") as f:
lines = f.readlines()
Bu, kutunun dışında tanımlanabilir değildir. Belirtilen bir __exit__ rutini ile python türleri ile çalışır. –
en bu konuya otoritemizle ilave edelim: http://lists.ironpython.com/ Örneğin pipermail/users-ironpython.com/2008-Temmuz/007826.html –
Bu soruyla alakalı bir şey göremiyorum. –