// C# 8.0
private void Read(path, string value)
{
using FileStream fs = new File.Open("src.txt", FileMode.Open, FileAccess.Read, FileShare.None);
using StreamWriter writer = new StreamWriter(fs);
writer.WriteLine(data);
//Dispose();
} // C# 모든 버전 private void GetData() { using (FileStream fs = new File.Open("src.txt", FileMode.Open, FileAccess.Write, FileShare.None)) {
using (StreamWriter writer = new StreamWriter(fs))
{
writer.WriteLine(data);
//writer.Dispose();
}
//fs.Dispose();
}
}
https://www.csharpstudy.com/latest/CS8-using.aspx
중괄호 없이도 using문 사용 가능해졌다.
객체 선언할 때 using 키워드 붙이면 메서드 끝에서 자동으로 dispose 호출해줌.
aes 암복호화, 소켓통신처럼 스트림 구조 복잡한 함수 작성할 때 블록 밖에서 byte[] buff 선언하는 뻘짓 굳이 할 필요 없어짐
러스트 따라하네
원래 지역변수는 블록 끝날 때 gc가 수거해가고 그때 dispose호출할텐데... 조금이라도 빨리 회수해가라는 건가? using 괄호로 감싸는 게 더 명확해보여서 좋은데... 8에서 편해보이는 것은 널병합연산자랑 비동기순회, 암튼 c#은 꾸준히 발전하네. 좆바는 좆망