Từ khóa using
có ba ý nghĩa khác nhau:Tại sao các nhà thiết kế C# lại đính kèm ba ý nghĩa khác nhau vào từ khóa 'sử dụng'?
- loại/namespace răng cưa
- namespace nhập khẩu
- đường cú pháp để đảm bảo Dispose được gọi
Các tài liệu gọi là hai định nghĩa đầu tiên chỉ thị (mà tôi đoán có nghĩa là chúng được tiền xử lý trong tự nhiên), trong khi cuối cùng là một tuyên bố .
Bất kể thực tế là chúng được phân biệt bằng cú pháp của chúng, tại sao các nhà phát triển ngôn ngữ lại làm phức tạp ngữ nghĩa của từ khóa bằng cách đính kèm ba ý nghĩa khác nhau vào từ khóa? Ví dụ: (tuyên bố từ chối trách nhiệm: ngoài đầu của tôi, chắc chắn có thể là ví dụ tốt hơn) tại sao không thêm từ khóa như alias
và import
? Lý do kỹ thuật, lý thuyết hoặc lịch sử? Hạn ngạch từ khóa? ;-)
giả tạo mẫu:
import System.Timers;
alias LiteTimer=System.Threading.Timer;
alias WinForms=System.Windows.Forms;
public class Sample {
public void Action() {
var elapsed = false;
using(var t = new LiteTimer.Timer(_ => elapsed = true) {
while (!elapsed) CallSomeFinickyApi();
}
}
}
"Sử dụng" là một từ mơ hồ như vậy.
tôi sẽ được hạnh phúc để có thể gõ 'chỉ using' bên trong một hàm, giống như trong C++. Tôi đoán điều này là không thể chính xác vì tính hai mặt đó. – liori
FYI, hai đầu tiên là chỉ thị vì chúng không tạo ra bất kỳ mã nào; họ chỉ thay đổi bảng tên. Cái cuối cùng là một câu lệnh vì nó tạo ra mã được tạo ra. – Gabe
@Gabe Cảm ơn bạn đã làm rõ điều đó. –