Tôi là một lập trình viên Python đang học C #, người đang cố gắng ngừng lo lắng và chỉ yêu C # vì nó là gì, thay vì liên tục so sánh nó với Python.
Tôi bị cuốn vào một điểm: thiếu chứng minh về nơi mọi thứ được xác định, như chi tiết trong câu hỏi Stack Overflow này . Nói tóm lại: trong C #, using foo
không cho bạn biết tên foo
nào đang được cung cấp, tương tự như from foo import *
trong Python - một hình thức không được khuyến khích trong văn hóa mã hóa Python vì ẩn ý hơn là cách tiếp cận rõ ràng hơn from foo import bar
.
Tôi khá ngạc nhiên với câu trả lời Stack Overflow cho đến thời điểm này từ các lập trình viên C #, đó là trong thực tế việc thiếu nhân chứng này không thực sự quan trọng bởi vì trong IDE của bạn (có lẽ là Visual Studio), bạn có thể chỉ cần di chuột qua một cái tên và được nói bởi hệ thống mà tên đến từ. Ví dụ:
Bây giờ, về lý thuyết tôi nhận ra điều này có nghĩa là khi bạn đang tìm kiếm một trình soạn thảo văn bản, bạn không thể biết các loại đến từ đâu trong C # ... nhưng trong thực tế, tôi không thấy đó là một vấn đề. Bạn có thường xuyên xem mã và không thể sử dụng Visual Studio không?
Đây là sự mặc khải đối với tôi. Nhiều lập trình viên Python thích cách tiếp cận trình soạn thảo văn bản để mã hóa, sử dụng một cái gì đó như Sublime Text 2 hoặc vim, trong đó tất cả là về mã, cộng với các công cụ dòng lệnh và truy cập trực tiếp và thao tác các thư mục và tệp. Ý tưởng về việc phụ thuộc vào một IDE để hiểu mã ở mức cơ bản như vậy có vẻ như vô cảm. Có vẻ như văn hóa C # hoàn toàn khác về điểm này. Và tôi tự hỏi nếu tôi chỉ cần chấp nhận và chấp nhận điều đó như là một phần trong việc học C # của tôi.
Điều này dẫn tôi đến câu hỏi của tôi ở đây: phát triển C # có hiệu quả không thể tách rời với IDE bạn sử dụng không?
using MyType = MyNamespace.MyType;
?
global::
và làm việc theo cách của mình từ đó. using
không làm bất cứ điều gì có sẵn mà trước đây không có; nó chỉ làm cho nó dễ dàng truy cập hơn (vì cần ít gõ hơn để sử dụng một lớp cụ thể).