using System.Net; // (See Chapter 16)
...
string s = null;
using (WebClient wc = new WebClient()) // why there is no brackets after this using statement
try { s = wc.DownloadString ("http://www.albahari.com/nutshell/"); }
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.Timeout)
Console.WriteLine ("Timeout");
else
throw; // Can't handle other sorts of WebException, so rethrow
}
Đoạn mã trên được sao chép từ trang Tóm tắt, tôi không hiểu tại sao {} bị thiếu sau tuyên bố sử dụng, là lỗi đánh máy trong sách (không) hoặc không cần thiết? Như cú pháp là sử dụng cần phải theo sau bởi một khối mã bên trong {}.C# "sử dụng" câu lệnh theo sau bằng câu lệnh thử có thể đặt dấu ngoặc trong trường hợp đó không?
Tôi mong chờ mã này là:
using System.Net; // (See Chapter 16)
...
string s = null;
using (WebClient wc = new WebClient()) // why there is no brackets after this using statement
{
try { s = wc.DownloadString ("http://www.albahari.com/nutshell/"); }
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.Timeout)
Console.WriteLine ("Timeout");
else
throw; // Can't handle other sorts of WebException, so rethrow
}
}
Chúng tôi sử dụng khối '{}' để giới thiệu một phạm vi nhiều dòng, chúng tôi không sử dụng chúng khi chúng tôi muốn giới thiệu một phạm vi của một dòng như 'if (true) return;' Trong trường hợp này là ' Câu lệnh try' sẽ giới thiệu phạm vi đa dòng của riêng nó. Vì vậy, nó không cần thiết. – Mahmoud
Dấu ngoặc nhọn chỉ cần thiết nếu bạn có nhiều câu lệnh bạn muốn đưa vào. Một thử-catch là một tuyên bố, vì vậy họ không cần thiết, nhưng đó là hình thức xấu. Và bạn về mặt kỹ thuật có thể loại bỏ tất cả các dấu ngoặc nhọn và mã sẽ vẫn hoạt động theo cùng một cách. – juharr
Dường như tôi cũng thích – Paparazzi