2010-05-03 22 views

Trả lời

6

Bắt đầu với

public void Method() {}

  1. Trước tiên, hãy phương pháp tĩnh bằng cách sử dụng "Make Phương pháp tĩnh" lệnh .

    public static void Method() {}

  2. Sau đó, thêm một biến cục bộ của loại lớp mới:

    public static void Method() {Class2 tôi = new Class2(); }

  3. Sau đó, sử dụng Giới thiệu Parameter

    public static void Method (Class2 tôi) {}

  4. Sau đó sử dụng "Make Method non-Static". Trong class2:

    public void Method() {}

+0

Tôi không nhìn thấy bước , có ngầm không? Tôi cũng không thấy được độ lợi của biến = tham số bước. – Slampen

+0

Phương thức di chuyển khi bạn (1) thêm tham số và sau đó (2) làm cho phương thức không tĩnh, biến tham số này thành con trỏ "this", làm cho phương thức trở thành một phương thức cá thể của lớp đó. –

+0

Sau khi thử cả hai phương pháp, tôi đã thực hiện kiểm tra lại câu trả lời này. – Slampen

4

Tương tự như trên, nhưng tôi sẽ không làm việc chuyển đổi để tĩnh-phương pháp bằng tay. Kéo lên trình đơn "Refactor this" (sử dụng các phím tắt tất nhiên, ctrl + shift + R), sau đó chọn "Make static method", sau đó "Refactor this" -> "Move".

Lưu ý:

Nếu bạn đang nói về việc chuyển một phương pháp trong một hệ thống phân cấp lớp, bạn có thể sử dụng "Đẩy các thành viên xuống" hoặc "Kéo thành viên lên"

+0

Tôi không có nghĩa là bạn nên làm cho phương pháp tĩnh bằng tay. Tôi có nghĩa là "Làm cho phương pháp tĩnh". Ngoài ra, làm một "Di chuyển" tiếp theo sẽ để lại phương pháp tĩnh, và nó không phải là tĩnh trước đây. –

1

Trong to-date up-Resharper, có Move Refactoring. Bạn nhấn F6 trong khi con trỏ đang ở trong chữ ký phương thức, hoặc cắt dán mã vào vị trí mới, và Resharper cung cấp cho bạn áp dụng việc tái cấu trúc.

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