Sử dụng từ khóa, sử dụng từ khóa trong giao diện C #


16

Khi tôi đang sử dụng C # để viết một số mã và tôi xác định giao diện bằng Visual Studio 2010, nó luôn bao gồm một số câu lệnh "sử dụng" (như trong ví dụ)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TestEngine.TestNameSpace
{
    interface ITest1
    {
        bool testMethod(int xyz);
    }
} 

Tôi tự hỏi những thứ này để làm gì và nếu chúng thực sự cần thiết. Tôi có thể bỏ những thứ này không? Có phải chúng chỉ cần thiết khi tôi sử dụng các phần đó trong mô tả giao diện của mình?


thnx để chỉnh sửa. Tôi chỉ tìm ra nó cho mình. bằng cách nào đó, các câu lệnh sử dụng bị bỏ qua mặc dù tôi đã chọn chúng trong khối mã :)
Onno

2
Đồng thời đọc stackoverflow.com/a/151560/240613 : trong mã của bạn, việc sử dụng không đúng chỗ.
Arseni Mourzenko

1
Thnx cho liên kết, đó là một bổ sung tuyệt vời. Sau câu trả lời của @Akshat Jiwan Sharma, rõ ràng đây là trường hợp thực sự, nhưng đồng thời câu hỏi liên quan đến mẫu / cài đặt mặc định được cung cấp bởi MS khi bạn cài đặt VS2010.
Onno

1
@MainMa - đây là nơi Visual Studio đặt các usingsmẫu mặc định, vì vậy trừ khi Microsoft cập nhật những câu hỏi này sớm thì câu hỏi này là hợp lệ.
ChrisF

1
@ REhat: Đúng, nhưng tôi nghĩ rõ ràng những gì đang được hỏi khi đọc câu hỏi đó. Hãy thoải mái chỉnh sửa tiêu đề nếu bạn có thể nghĩ ra một cái tốt hơn.
Onno

Câu trả lời:


49

Visual Studio không biết mã nào bạn định viết, bao gồm các không gian tên phổ biến nhất cho bạn theo mặc định trong mẫu "lớp mới". Điều này được thực hiện để bạn không phải giải quyết tất cả các tham chiếu cho mỗi dòng mã mới mà bạn viết.

Khi bạn đã viết mã cơ bản nếu bạn nhấp chuột phải và chọn Sắp xếp sử dụng > Xóa và sắp xếp, nó sẽ xóa bất kỳ mã nào không được sử dụng.


2
Ngoài ra, nếu bạn xóa nhầm dòng "sử dụng", bạn có thể thêm lại chúng bằng cách truy cập tên lớp mà bây giờ không thể tìm thấy và nhấp chuột phải -> Giải quyết -> Sử dụng ...
Mr Lister

10
@MrLister: Nếu bạn chưa biết điều này: nhấn "ctrl +." (thời gian kiểm soát) khi con trỏ của bạn ở bất kỳ loại hoặc lớp chưa được giải quyết nào và bạn sẽ có được hiệu ứng tương tự mà không cần phải chạm vào chuột.
Steven Evers

3
Cũng như một phần bổ sung cho câu trả lời: "cách sử dụng" không được sử dụng sẽ không ảnh hưởng đến thời gian chạy mã của bạn, vì chỉ "cách sử dụng" được sử dụng mới được tải. Tuy nhiên, chúng có thể ảnh hưởng đến IDE và tốc độ biên dịch: stackoverflow.com/questions/136278/ trên
Holger

Vì đây là câu trả lời được chấp nhận, tôi muốn đề cập rằng StyleCop sẽ phàn nàn về việc các tài liệu tham khảo không đúng chỗ và người ta cũng có thể chỉnh sửa một mẫu cho một lớp mới và một giao diện mới, v.v.
Công việc

5

Có, bạn có thể xóa bất kỳ lệnh sử dụng nào không được sử dụng. Các lệnh này được tự động thêm bởi visual studio vì chúng là những lệnh được sử dụng phổ biến nhất và nếu bạn không sử dụng linq trong giao diện thì bạn có thể xóa lệnh

 System.Linq;

Điều này cũng đúng với các chỉ thị khác. Ngoài ra, theo tôi, đó là một cách thực hành tốt để di chuyển các chỉ thị sử dụng bên trong các không gian tên.


Rất vui khi được giúp đỡ câu hỏi mà bạn đã hỏi làm tôi bối rối trong một thời gian dài. :)
Akshat Jiwan Sharma

Người ta có thể chỉnh sửa tệp mẫu và điều chỉnh bằng cách sử dụng câu lệnh được bao gồm và ở đâu - chúng nên đi vào bên trong không gian tên theo mặc định nếu không StyleCop sẽ phàn nàn, và thậm chí tệ hơn - điều tồi tệ có thể xảy ra.
Công việc

3

Các usingbáo cáo mặc định này là một phần của mẫu mặc định của bạn khi tạo giao diện. Bạn luôn có thể chỉnh sửa mẫu để xóa chúng. Xem câu hỏi này để biết thêm chi tiết.


Nhưng chúng có thực sự cần thiết? Có một lý do tốt cho họ là trong mẫu?
Onno

Nếu bạn không cần chúng, chỉ cần loại bỏ chúng. Chúng chỉ là mặc định.
Bernard

Chúng chỉ cần thiết nếu một trong các phương thức giao diện của bạn là loại trả về nằm trong một trong số chúng. Bạn cần Hệ thống ở mức tối thiểu và những thứ khác chỉ khi cần cho các loại bạn muốn trả về.
Graham

Trên thực tế, nhiều lớp không cần hệ thống. Nhưng tất cả trong tất cả, nó làm cho cuộc sống dễ dàng hơn đối với hầu hết các nhà phát triển, đặc biệt là những người không sử dụng .NET một cách khủng khiếp và không biết lấy các lớp hệ thống chính ở đâu.
Wyatt Barnett

0

Nói tóm lại , chúng được gọi là không gian tên . Không gian tên cũng được sử dụng để tham chiếu một số lớp thư viện trong mã của bạn. Ngoài ra còn có một hướng dẫn được đề xuất về cách sử dụng không gian tên trong .NET

Trong hầu hết các trường hợp, bạn có thể đơn giản loại bỏ chúng nếu không sử dụng. Hai không gian tên sau đây là các ứng cử viên tiềm năng sẽ bị xóa.

using System.Collections.Generic;
using System.Linq;

Visual Studio sẽ khiếu nại và KHÔNG biên dịch mã, khi một số lớp khung / thư viện đã được sử dụng mà không khai báo không gian tên của chúng. Do đó, không gian tên cuộn cuộn cấu trúc mã của bạn cũng như giảm bớt các tham chiếu giữa các lớp dự án, giao diện, cấu trúc, v.v.


-1

sử dụng trong C # được sử dụng cho nhiều cách .. như từ khóa sử dụng có nghĩa là sử dụng .. khi bắt đầu khi chúng tôi sử dụng hệ thống; điều đó có nghĩa là có một DLL tên hệ thống trong đó tất cả các chức năng chính được lưu trữ và chúng tôi sử dụng nó để rút ngắn mã của chúng tôi ...

system.WriteLine("Andy");

nhưng khi chúng ta sử dụng hệ thống ở trên thì chúng ta có thể viết nó thành

WriteLine("Andy");

nhiều hơn trong SQLserver khi chúng ta sử dụng kết nối, điều đó có nghĩa là sau khi chúng ta sử dụng dữ liệu từ cơ sở dữ liệu bằng cách sử dụng kết nối lệnh sẽ tự đóng. nó rất hữu ích cho một lập trình viên muốn tiết kiệm thời gian


1
Vui lòng không cố gắng thêm các liên kết không cần thiết (và có khả năng spam) vào câu trả lời của bạn.
ChrisF
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.