2009-04-02 42 views

Trả lời

46

Đối với phương pháp ảo, bạn có thể nhập override và sau đó là khoảng trắng. Intellisense sẽ cung cấp cho bạn một danh sách các tùy chọn.

Đối với phương pháp trừu tượng và thuộc tính, bạn có thể sử dụng thẻ thông minh trên các lớp cơ sở hoặc giao diện (còn, Ctrl + . hay phím Shift + Alt + F10 sẽ hiển thị trình đơn thẻ thông minh) để tạo ra các vật phẩm cụ thể.

Ví dụ, trong đoạn mã sau đây, bạn có thể đặt dấu nháy vào cuối INotifyPropertyChanged và nhấn Ctrl + . để sau đó chọn Thực hiện giao diện, và sự kiện PropertyChanged sẽ được thêm vào MyClass:

class MyClass : INotifyPropertyChanged 
{ 
} 
+0

Tính năng này hoạt động tốt cho việc triển khai Giao diện. Tôi muốn lấy được một lớp từ một lớp khác và không có cách nào dễ dàng để làm điều đó. – Kangkan

+0

@Kangkan: Nếu lớp kia có các phương thức trừu tượng, nó hoạt động giống như với các giao diện. tuy nhiên, nếu nó có các phương thức ảo với việc triển khai, bạn chỉ nên ghi đè lên các phương thức bạn cần. Tôi không chắc chắn những gì "cách dễ dàng" bạn đang thiếu, nhưng chỉ cần gõ ghi đè và một không gian như trên và nó sẽ cung cấp cho bạn một lsit của các phương pháp có sẵn. Bạn không cần phải ghi đè tất cả. –

+0

Tôi muốn thêm các thuộc tính và phương thức bổ sung vào lớp của mình trong khi vẫn duy trì tất cả các phương thức và thuộc tính từ lớp cơ sở. Vì vậy, tôi muốn nhận được các phương thức và các thuộc tính được thực hiện như là cách base.method(). – Kangkan

4

Đối với các phương pháp ảo, nhập ghi đè, cung cấp khoảng trắng và intellisense sẽ cho bạn thấy tất cả các phương pháp có thể được kế thừa.

22

Chỉ cần gõ Giao diện mà bạn muốn thực hiện, và sau đó bấm vào khóa thông minh, một menu ngữ cảnh sẽ bật lên, và sau đó bạn có thể chọn một trong hai Thực hiện giao diện hoặc Thực hiện giao diện một cách rõ ràng:

enter image description here

Tất cả các thành viên để được ghi đè sẽ được chứa trong một vùng mã được đặt tên để phản ánh mục đích của nó.

Tất cả các thành viên sẽ có một dòng ném một số NotImplementedException.

+1

Các cuộc đàm phán OP về bắt nguồn từ lớp cơ sở và không phải về triển khai giao diện. – Kangkan

1

Như những người khác đã đề cập, thẻ thông minh (qua Ctrl+.Alt+Shft+F10) sẽ giải quyết vấn đề của bạn, tuy nhiên Visual Studio có một tùy chọn gây phiền nhiễu mà sẽ tự động quấn tạo ra thuộc tính/phương pháp với một khu vực như thế này:

#region INotifyPropertyChanged members 
... 
#endregion 

Bạn có thể bật chức năng này bằng cách truy cập Tools > Options > Text Editor > C# > Advanced. Có một hộp kiểm được gọi là Implement Interface > Surround generated code with #region. Chỉ cần chắc chắn rằng nó là không được kiểm soát.

+1

Tôi nghĩ rằng khu vực này là loại tốt đẹp vì nó cờ các phương pháp như liên quan đến giao diện, và cũng làm cho toàn bộ nhóm đóng mở. –

3

Đừng nghĩ rằng điều này tồn tại khi câu hỏi ban đầu được hỏi, nhưng ít nhất là của VS 2013, bạn có thể tự động tạo ra các phương thức trừu tượng cho các phương thức trừu tượng & thuộc tính. Chỉ cần nhấp chuột phải vào tên lớp trừu tượng (trong định nghĩa lớp học của bạn) và chọn "Triển khai lớp trừu tượng". Cũng giống như CMS cho thấy với việc tự động thực hiện các giao diện.

+0

CMS nhấp vào "Thẻ thông minh", hộp nhỏ xuất hiện bên dưới chữ M trong 'MyInterface' trong ảnh của anh ấy. – Zack

Các vấn đề liên quan