2016-11-19 18 views
6

.net core 1.1 kullanıyorum, daha önce .net framework ile iken, FileStream veya FileStream veya herhangi bir Stream akışı işlemleri bitirdikten sonra Ancak, .net core 1.1'deki FileStream sınıfında Close yöntemi yok, Dispose() buldum ama eşdeğer olup olmadığını bilmiyorum. .net çekirdeğindeki yeni FileStream/StreamWriter sınıfını doğru bir şekilde doğru şekilde bilmeme izin veren herkes?FileStream/StreamWriter in .NET Core 1.1 yok Close() yöntemi yok

+3

Bazı iyi tasarlanmış tasarım kararlarını, düzgün bir şekilde ortaya çıkmayan tam çerçeve içinde düzeltmek için .NETCore'u kullandılar. Aynı şeyi yapan iki yönteme sahip Akış sınıfı gibi, At ve Kapat. Kağıt üzerinde ses tasarımı, ancak hangisinin daha iyi olduğuna karar veremeyen birçok programcıya şaşırtıcı. –

+0

Hans'ın dediği gibi, bunun yerine "Dispose" 'ı güvenle kullanabilirsiniz. Lütfen tartışmayı bitirmek için aşağıya bir cevap kabul edin. Microsoft, .NET Core 1.2'nin bir parçası olması gereken yaklaşan .NET Standard 2.0'a 'Close' geri ekledi. –

cevap

5

Uygulaması IDisposable, Dispose() yöntemini dolaylı olarak çağıran ve böylece akışı kapatan bir using deyimini kullanabileceğiniz anlamına gelir.

Kullanım

using (StreamWriter sw = new StreamWriter(path)) 
{ 
    // your logic here 
} // here Dispose() is called implicitly and the stream is closed 
0

Bu sorunla çalışan, eski kodu bozulmamış halde tutmak için başka bir seçenek bir uzantı yöntemi yazmak olabilir.

public static class FileStreamExtension 
{ 
    public static void Close(this FileStream reader) 
    { 
     reader.Dispose(); 
    } 
} 
İlgili konular